Заздалегідь встановлений текст для нового посту 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.
Може комусь у пригоді.