How to modify post content?

时间:2013-03-07 作者:Arch1tect

我还没弄明白。这条路对吗?我试过了$_POST[\'content\'] = "nothing"$_POST[\'content\'] = 0 都不适合我。我用下面的方法

function changeContent() {
     $_POST[\'content\'] = "nothing"; 
}
add_action(\'publish_post\', \'changeContent\');
我想在写入数据库之前更改内容。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

您可以查看content_edit_pre 滤器

您的示例如下所示:

function wpse89725_pre_edit_content( $content, $post_id ) {
   $content = "nothing";
   return $content;
}
add_filter( \'content_edit_pre\', \'wpse89725_pre_edit_content\', 10, 2 );
您可以在Codex中阅读有关此过滤器的更多信息:

https://codex.wordpress.org/Plugin_API/Filter_Reference/content_edit_pre

Edit:

您也可以尝试edit_post_content 过滤器:

add_filter( \'edit_post_content\', \'my_pre_edit_content\', 10, 2 );
既然档案里有/wp-includes/post.php 这些行:

 $value = apply_filters("edit_{$field}", $value, $post_id);
 // Old school
 $value = apply_filters("{$field_no_prefix}_edit_pre", $value, $post_id);
这两个过滤器都应该工作,但是*_edit_pre 似乎即将退出,取而代之的是edit_*.

结束

相关推荐

Overwrite URL on blog posts

我想在单个博客帖子上覆盖我的URL。目前,我的帖子显示为www.mydomain。co.uk/post-title,但我希望它们是www.mydomain。co.uk/blog/post-title so/blog/always displays before post item,我曾尝试从permalink级别这样做,但当我将/blog放在post name框中时,它可以工作,但是我所有的单个自定义帖子都显示为/blog/Custom post item,这不是我想要的,因为我只希望博客帖子发生这种情况