Задаем предустановленный текст в WordPress: решение для классического редактора

Задаем предустановленный текст для нового поста в 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, не стесняйтесь задавать их!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *