问题描述
我认为这可能是一个普通的 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_Table
的 WP_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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。