Je pense que cela peut être plus une question php générale, mais je la poste ici car elle concerne une fonction WP. J'ai quelques problèmes avec un add_action
sur manage_posts_custom_column
dans une classe. Voici le code (un peu dépouillé):
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;
}
}
}
L'erreur que je reçois est 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
.
En regardant plus profondément, j'ai trouvé que l'action manage_posts_custom_column
est référencée dans la classe WP_Posts_List_Table
qui étend WP_List_Table
et je me demande si c'est la cause de l'erreur?
Comment puis-je contourner cela?
Modifier:
Bien pour commencer je pourrais écrire l'action correctement !!! Au lieu de add_action('manage_posts_custom_column', array($this, 'manage_post_columns', 10, 2));
, ce devrait être add_action('manage_posts_custom_column', array($this, 'manage_post_columns'), 10, 2);
. Notez la position du )
. :-)
Votre problème est une simple faute de frappe:
array($this, 'manage_post_columns', 10, 2)
CONTRE.
array($this, 'manage_post_columns'), 10, 2
Je suppose que tu vois la différence