問題描述

我認為這可能是一個普通的 php 問題,但我釋出在這裡,因為它涉及一個 WP 功能。我在一個類中的 manage_posts_custom_column 上有一個 add_action 的問題。這是程式碼 (剝離了一點):

class The_class{

    function __construct() {
        $this->add_actions();
    }

    function add_actions() {
        add_action('admin_notices', array($this, 'admin_notices'));
        add_action('manage_posts_custom_column', array($this, 'manage_post_columns', 10, 2));
    }

    function admin_notices() {
    // Works fine
    }

    function manage_post_columns($column_name, $post_id)
        switch ($column_name) {
            case 'xxxyyzz':
                // The code
            break;
            default:
                // Error
            break;
        }
    }
}

我得到的錯誤是 Warning: call_user_func_array() expects parameter 1 to be a valid callback, array must have exactly two members in xxx/wp-includes/plugin.php on line 405

更深入地,我發現 manage_posts_custom_column 在擴充套件 WP_List_TableWP_Posts_List_Table 類中被引用,我不知道這是否是錯誤的原因?

如何解決這個問題?

編輯:

對於初學者,我可以正確地寫出動作!而不是 add_action('manage_posts_custom_column', array($this, 'manage_post_columns', 10, 2));,它應該是 add_action('manage_posts_custom_column', array($this, 'manage_post_columns'), 10, 2); 。注意)的位置。 🙂

最佳解決方案

你的問題是一個簡單的打字錯誤:

array($this, 'manage_post_columns', 10, 2)

VS.

array($this, 'manage_post_columns'), 10, 2

我想你看到了差異

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。