我正在尝试创建一个功能,该功能会自动将默认文本添加到WordPress Post Editor中以用于现有和新帖子。我已经找到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');
提前致谢。
答案 0 :(得分:0)
过滤器和操作会向其功能发送不同的参数,因此您不一定对不同的功能使用相同的功能。检查过滤器/操作参考,以获取每个参数的正确参数。
此外,没有update_post操作。也许你想要save_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 );