Я пытаюсь создать функцию, которая будет автоматически добавлять текст по умолчанию в редактор сообщений WordPress для существующих и новых сообщений. Я уже нашел код для добавления add_filter в default_content, и он хорошо работает для новых сообщений, но не окажет никакого влияния на существующие опубликованные записи / страницы. Новый текст по умолчанию может быть добавлен, когда я нажимаю «Обновить» для существующих сообщений, это было бы хорошо.
Вот что у меня так далеко:
function add_before_content($content) {
$content = '<p>My default content.</p>';
return $content;
}
add_action('publish_post', 'add_before_content');
add_action('update_post', 'add_before_content');
add_filter('default_content', 'add_before_content');
Заранее спасибо.
Фильтры и действия отправляют в свои функции разные параметры, поэтому вы не можете использовать одну и ту же функцию для разных. Проверьте ссылки фильтра / действия для правильных параметров для каждого.
Также нет действия update_post. Может быть, вы хотели сохранить_пост
Но действия, вероятно, не то, что вы хотите использовать в любом случае. Они хороши для выполнения чего-либо, связанного с предметом действия, но для работы с контентом вам лучше использовать фильтры.
Например, что-то вроде следующего может сделать то, что вы хотите:
function add_before_content( $content ) {
$my_content = '<p>My default content.</p>';
if (substr($content, 0, strlen($my_content)) != $my_content) {
$content = $my_content . $content;
}
return $content;
}
add_filter( 'content_save_pre', 'add_before_content', 10, 1 );
Других решений пока нет …