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