[WordPress] 捕獲更新、修改、發佈內容的 transition_post_status 事件

一直以來找這個「更新、修改或發佈內容」事件我都找到的是 save_post 這個 hook,直到上週意外找到這篇文章「WordPress Publish Post Hook」,發現驚為天人啊~

原來有權重這麼高的捕捉事件「transition_post_status」可以用,怎麼之前都沒查到呢!

參數有三個 string $new_status, string $old_status, WP_Post $post 分別是當前處理的最新狀態、處理前的狀態,最後是該篇內容物件。

透過狀態的改變以及搭配內容物件,全系統下走 WordPress 原生內容物件的類型(Post Type)都能捕捉以及設計出應用,豈不是很棒?!

範例程式如下:

<?php
function mxp_update_facebook_url_cache($new_status, $old_status, $post) {
    // 發佈文章事件,不管先前狀態為何,新狀態是發佈就捕捉
    if ('publish' === $new_status && $post->post_type === 'post') {
        // 在這邊想幹嘛不用客氣拉!
    }
}
// Add the hook action
add_action('transition_post_status', 'mxp_update_facebook_url_cache', 10, 3);

Facebook 外掛整合

Share: