Skip to content

【第 06 天】WordPress 啟用、停用、刪除外掛

Last updated on 2020 年 10 月 30 日

啟用、停用、刪除外掛?阿不就去 WordPress 後台的外掛列表,動動手指頭按下去就好了?

當然不是這樣了,不然我這是來搞笑的嗎?

今天要聊的是三個的 hooks!透過這三個 hook 可以在自己的外掛被啟用、停用或是刪除的這一瞬間,做點事情。

Set the activation hook for a plugin.

首先第一個是 register_activation_hook() ,官方的介紹是『Set the activation hook for a plugin.』,簡單來說就是設置外掛啟動時的 action hook。我們直接拿官方文件上的範例來看。

function pluginprefix_setup_post_type() {
    // 註冊 book 自定義文章類型
    register_post_type( 'book', ['public' => 'true'] );
}
add_action( 'init', 'pluginprefix_setup_post_type' );
 
function pluginprefix_install() {
    // 拿剛剛定義的副程式來用
    pluginprefix_setup_post_type();
 
    // 註冊文章類型後,更新固定連結的規則
    flush_rewrite_rules();
}

// 
register_activation_hook( __FILE__, 'pluginprefix_install' );

外掛啟動後,就會新增了一個 book 這個 post type

Set the deactivation hook for a plugin.

register_deactivation_hook() ,在我們暫停運行外掛的時候,我們可以透過這個 hook 來清理一些臨時的資料。

inprefix_deactivation() {
    // 取消註冊文章類型
    unregister_post_type( 'book' );
    // 更新固定連結規則
    flush_rewrite_rules();
}

register_deactivation_hook( __FILE__, 'pluginprefix_deactivation' );

再回去剛剛的那篇 post ,就會發現 WordPress 提示說『無效的內容類型。』

今天如果我又重啟了這個外掛,會發現 這篇 post 又正常運作囉!

Set the uninstallation hook for a plugin.

最後就是要來介紹下 register_uninstall_hook() ,在我們刪除外掛的時候會使用到,舉剛剛的例子來說

register_uninstall_hook(__FILE__, 'pluginprefix_function_to_run');

今天我們第一次認識了 WordPress 提供的 hooks,而且還三個!然後在我寫這篇文章的時候,發生一件很討厭的事情,就是我出錯的話就直接 return status code ,讓我不知道怎麼 debug ,所以明天就來聊聊 debug 吧!

Published in2020鐵人賽WordPress

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *