save_post
看起来有文件记录。 /> 我将做一些比添加时间戳更有用的事情,即运行一些正则表达式过滤器,但这是我要添加的过滤器/操作的常规类型。更新
请注意,我想截取保存在数据库中的数据,而不是在帖子中显示数据时截取(例如:不在
wp_insert_post
上添加过滤器)#1 楼
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;
}
评论
让我朝正确的方向前进,谢谢。我认为您实际上实际上需要使用add_action而不是add_filter。还有你的wpse35931_filter_post_data和filter_handler是不一致的...
– cwd
2011-12-9 14:38
绝对是一个过滤器。尽管过滤器和操作基于相同的功能,但可以进行交叉。但是,如果将此操作用作操作,则将无法返回将删除整个点的数据。您要过滤数据,然后将其返回。
–杰克
16年5月13日在15:52
wp_insert_post_data可以工作,但是对于OP(可能还有其他)想要完成的工作来说有点过分了。在这种情况下,一个更简单的选项是@drzaus建议的content_save_pre。
– rinogo
16年11月17日在16:05
wp_insert_post_data过滤器的开发人员文档:developer.wordpress.org/reference/hooks/wp_insert_post_data
–jave.web
17年1月20日在17:58
每当您(a)在主题的functions.php中手动调用wp_insert_post()来插入/更新帖子时,都会调用该挂钩吗?b)每当通过任何可能的方式(例如,通过后端,通过前端)保存帖子时,都会调用此挂钩吗? ,以其他方式...)?
– Vadim H
18年7月25日在8:27
#2 楼
请使用与content_save_pre
完全相同的过滤器the_content
,不同之处在于,它会在保存帖子时显示,而不是显示。 >#3 楼
您还可以检查钩子pre_post_update
add_action('pre_post_update', 'before_data_is_saved_function');
function before_data_is_saved_function($post_id) {
}
评论
它适用于后期创建吗?
–陈剑
20年5月14日,2:35
#4 楼
在保存之前,将以下代码添加到活动主题中以用<shell>
替换[shell]
: add_filter('content_save_pre', 'my_sanitize_content', 10, 1);
function my_sanitize_content($value) {
return str_replace('<shell>', '[shell]', $value);
}
#5 楼
如果您只想在所有帖子的末尾添加类似内容,则建议您使用the_content
过滤器。function append_to_content( $content ) {
global $post;
return $content.'<br />This post was saved on '.$post->post_date;
}
add_filter( 'the_content', 'append_to_content' );
评论
谢谢,但是我实际上想在将数据保存到数据库之前对其进行编辑。
– cwd
2011-12-9 14:25
评论
注意:您的设计很糟糕:-) 1.每次保存帖子时,都会附加此字符串。 (如果不删除前一个,则会得到很多“此帖子为...”的2.此类数据应存储为该帖子的元值:-) BTW:在之后调用save_post数据已保存,因此在保存到数据库之后(不是您想要的)。