問題描述
我有一個插件,我希望能夠在保存到數據庫之前通過一些過濾器來運行該帖子內容。從查看 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();
}
我會做一些比追加時間戳更有用的東西,即運行一些正則表達式過濾器,但這是我要添加的過濾器/操作的一般類型。
更新
請注意,我想截取數據保存在數據庫中的數據,而不是當它顯示在帖子中 (例如:不通過向 the_content 添加過濾器)
最佳解決方案
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;
}
次佳解決方案
使用過濾器 content_save_pre 完全像 the_content – 不同之處在於,當保存文檔時,它不會顯示。
http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。