問題描述

我有一個插件,我希望能夠在保存到數據庫之前通過一些過濾器來運行該帖子內容。從查看 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。