我有一个插件,我希望能够在将帖子内容保存到数据库之前,通过一些过滤器运行帖子内容。从查看plugin api, 我看到两个看起来很有用的钩子:
save_post
wp_insert_post
唯一的问题是
save_post
不需要返回变量,因此我不知道如何过滤内容
wp_insert_post
外观记录在案。
我想这样做:
add_action(\'whatever_hook_name\',\'my_function\');
function my_function($post_content){
return $post_content.\' <br> This post was saved on \'.time();
}
我将做一些比附加时间戳更有用的事情,即运行一些regex过滤器,但这是我试图添加的一般类型的过滤器/操作。
Update
请注意,我想截取保存在数据库中的数据,而不是在帖子中显示数据时截取数据(例如:不是通过在
the_content
)
最合适的回答,由SO网友:Anh Tran 整理而成
这个wp_insert_post_data 过滤器可以做到:
add_filter( \'wp_insert_post_data\' , \'filter_post_data\' , \'99\', 2 );
function filter_post_data( $data , $postarr ) {
// Change post title
$data[\'post_title\'] .= \'_suffix\';
return $data;
}
SO网友:Suyash Jain
将以下代码添加到活动主题以替换<shell>
具有[shell]
保存前:
add_filter(\'content_save_pre\', \'my_sanitize_content\', 10, 1);
function my_sanitize_content($value) {
return str_replace(\'<shell>\', \'[shell]\', $value);
}