問題描述
我有一個外掛,我希望能夠在儲存到資料庫之前透過一些過濾器來執行該帖子內容。從檢視 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。