Задаем предустановленный текст для нового поста в WordPress (THE_EDITOR_CONTENT)
Эта заметка не нова, но я хорошо помню, что читал об этом решении раньше. Сегодня мне понадобилось задать предустановленный текст для нового поста, и по какой-то причине я не смог быстро найти решение в интернете. Поэтому оказалось проще сделать это самостоятельно.
Учтите: такой способ не работает с новым редактором блоков (Гутенберг). Он применим только для классического редактора.
Общая информация, шаг за шагом
У меня есть пользовательский тип записи, который называется func
. Я хотел сделать так, чтобы при создании нового поста этого типа в редакторе WordPress уже был предустановленный текст. Предполагается, что все посты этого типа основаны на шаблонах, так что наличие текстового шаблона в редакторе значительно упрощает работу.
Эта задача решается с помощью фильтра. И хотя я знал об этом, мне не удалось быстро найти нужный фильтр. На самом деле, я вообще не смог найти решение в интернете — плохой детектив из меня.
Необходимый фильтр называется the_editor_content
. Он фильтрует содержимое редактора WordPress, независимо от того, редактируем мы пост или комментарий. Поэтому мы будем проверять, нужно ли "изменять" текст в функции, которую мы прикрепим к фильтру. Это выглядит довольно просто:
add_filter( 'the_editor_content', 'new_post_content' );
function new_post_content( $content ){
global $post;
if ( ! $post->post_content && $post->post_type == 'func' ) {
$content = "Здесь текст, который должен быть в поле содержимого нового поста";
}
return $content;
}
Пояснение кода
В условии if ( ! $post->post_content && $post->post_type == 'func' )
мы проверяем, является ли это новым постом (поскольку у поста нет содержимого) и если тип поста равен func
. Если условие выполняется, текст в поле содержимого будет заменен, в противном случае мы просто вернем текущее содержимое.
Этот код нужно вставить в файл functions.php
вашей темы.
Замечание
Это решение может быть полезно для тех, кто хочет упростить процесс создания новых постов, используя предустановленные шаблоны текста. Если у вас есть вопросы по коду или по настройке WordPress, не стесняйтесь задавать их!