Bonjour,

J’essaie de créer un panneaux d'admin pour un petit plugin Wordpress, mais je bloque, en fait grâce à la fonction add_submenu_page j'aimerais afficher ma page "edit.php?post_type=portfolio". Je gère l'ajout des menus comme ça:

add_action('admin_menu', 'Kportfolio_panel');
function Kportfolio_panel() {
add_menu_page('Réseaux sociaux', 'Réseaux Sociaux', 'activate_plugins', 'Kp_panel', 'render_panel', null, 81);
add_submenu_page('Kp_panel', 'Options', 'Options', 'manage_options','secondary_Kp_panel', 'post-new.php?post_type=portfolio');
}

L'erreur que je rencontre est celle ci :

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'post-new.php?post_type=portfolio' not found or invalid function name in C:\wamp\www\Kportfolio_Isotop\wp-includes\plugin.php on line 406

Il semble qu'il faut utiliser une __CLASS__ comme ceci

add_submenu_page('Kp_panel', 'Options', 'Options', 'manage_options','secondary_Kp_panel', array(__CLASS__, 'post-new.php?post_type=portfolio'));

Je ne vois pas à quoi correspond la class...

Merci!

2 réponses


friant
Réponse acceptée

Salut,

Il me semble que tu ne donnes pas les paramettres dans le bon ordre. Pas besoin de __CLASS__
Perso j'utilise cette fonction comme cela:

add_submenu_page(
        'edit.php?post_type=slide',
        'Configuration',
        'Configuration',
        'edit_pages', 
                'w2p_carousel_config',
        'w2p_carousel_config_page'
    );

En gros je pense que post-new.php?post_type=portfolio devrait entre en premier. Et je m'interoge aussi sur post-new.php à la place de edit.php... mais bon.

Regardes par là:
http://codex.wordpress.org/Function_Reference/add_submenu_page

J'espere t'avoir aidé un peut.

Bonjour je profite de ce post pour poster mon problème également.

Voilà mon morceau de code incriminé :

function gestion_abo() {
        add_menu_page('Abonnements', 'Abonnements', 'activate_plugins', 'gestion_abo', 'render_abo', null, 31);
        add_submenu_page('gestion_abo', 'Abonnements inactifs', 'Abonnements inactifs', 'activate_plugins', 'abo_off.php','');
    }

Donc mon sous menu s'affiche bien, mais je n'arrive pas à pointer sur mon fichier.
J'ai essayé plein de chose, mais même en mettant le chemin absolu, il me dit qu'il le trouve pas alors qu'en faisant un echo de mon chemin il doit normalement le trouver.
Un ptit coup de main svp, car même en regardant le codex je ne comprends pas.

Merci d'avance pour vos réponses.

Arno