web-dev-qa-db-fra.com

get_current_screen () dans add_action ('admin_menu')

J'utilise avec succès get_current_screen (); pour obtenir le post_type afin de décider de manipuler ou non une méta-boîte.

J'ai aussi besoin de l'utiliser dans:

add_action('admin_menu', 'infographicMetaBox');

function infographicMetaBox() {
    // ...
    $screen = get_current_screen();
    if('post' != $screen->post_type)
        return;
    // ...
}

cependant, il ne semble pas être disponible dans cette fonction de hook (peut-être être appelé trop tôt?).

2
Titan

Je ne sais pas exactement ce que vous essayez d'accomplir, mais vous semblez avoir affaire à des boîtes à méta. Si tel est le cas, il existe un certain nombre de crochets spécifiques à la boîte à méta.

do_action('add_meta_boxes', $post_type, $post);
do_action('add_meta_boxes_' . $post_type, $post);

do_action('do_meta_boxes', $post_type, 'normal', $post);
do_action('do_meta_boxes', $post_type, 'advanced', $post);
do_action('do_meta_boxes', $post_type, 'side', $post);

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/edit-form-advanced.php#L165

Ainsi que les crochets admin_head*

do_action("admin_head-$hook_suffix");
do_action('admin_head');

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/admin-header.php#L68

Tous ceux exécutés après global $current_screen sont définis ici: http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/admin-header.php#L18

4
s_ha_dum

Oui, c'est trop tôt. Consultez http://codex.wordpress.org/Function_Reference/get_current_screen pour des exemples d’utilisation.