WordPress 5.6 新增了一個動作掛鉤wp_after_insert_post,以允許主題和插件開發(fā)人員在文章及其分類項和元數(shù)據(jù)已更新后運行自定義代碼。
原有的save_post和相關(guān)動作鉤子也可以用于此目的,但這些鉤子會在經(jīng)典編輯器之外的場景中(例如,在REST API、定制器中以及創(chuàng)建自動草稿時),在分類項和元數(shù)據(jù)被更新之前觸發(fā)。
新鉤子最多發(fā)送三個參數(shù):
$post_id已更新的文章ID,為整數(shù)。$post已更新的文章的完整對象,即WP_Post對象。$updated該文章是否已更新,為布爾值。
默認(rèn)情況下,WordPress在wp_insert_post()末尾觸發(fā)此鉤子。該函數(shù)中添加了第三個參數(shù),以允許開發(fā)人員阻止該掛鉤自動觸發(fā):
$fire_after_hooks是否插入wp_after_insert_post鉤子,布爾值,可選,默認(rèn)true。
相同的參數(shù)已被添加到wp_update_post()作為第三個參數(shù)和添加到wp_insert_attachment()作為第五個參數(shù)。
如果開發(fā)人員調(diào)用了這些函數(shù)中的任何一個并阻止了鉤子觸發(fā),則可以預(yù)期他們將手動調(diào)用新函數(shù)wp_after_insert_post()來觸發(fā)新動作。此新功能需要兩個參數(shù):
$post已保存的文章ID或?qū)ο螅?code>整數(shù)或WP_Post對象$update文章是否已更新,布爾值。
簡單示例
如果您正在調(diào)用wp_insert_post()或上面列出的相關(guān)函數(shù)之一,則如果您隨后分別更新文章的分類項或元數(shù)據(jù),建議您阻止該鉤子運行并手動調(diào)用它。例如:
$post_id = wp_insert_post(
array(
'post_title' => 'My post title',
'post_content' => 'My post content',
'post_type' => 'my_cpt',
),
false,
false
);
add_post_meta( $post_id, 'my_meta_key', 'my meta value' );
wp_after_insert_post( $post_id, false );
// Second parameter is true for an updated post.
了解更多,請看官方日志。




