web-dev-qa-db-fra.com

Comment charger uniquement sur les pages post-new.php et post.php dans admin?

J'ai un script qui se charge dans l'admin. Je n'ai besoin que de le charger sur le nouveau message et de modifier les écrans de messages.

Quelle est la meilleure façon de procéder?

1
dcp3450

Consultez la page et mettez votre script en file d'attente en conséquence:

global $pagenow;
if (! empty($pagenow) && ('post-new.php' === $pagenow || 'post.php' === $pagenow ))
    add_action('admin_enqueue_scripts', 'enqueue_my_scripts');

function enqueue_my_scripts() {
    wp_enqueue_script(...);
} // function enqueue_my_scripts
2
tfrommen

La variable globale $hook_suffix est:

  • post-new.php pour le nouveau poste et
  • post.php pour l'éditeur de message régulier

Dans wp-admin/admin-header.php, il y a des crochets spéciaux:

do_action('admin_enqueue_scripts', $hook_suffix);
do_action("admin_print_styles-$hook_suffix");
do_action('admin_print_styles');
do_action("admin_print_scripts-$hook_suffix");
do_action('admin_print_scripts');
do_action("admin_head-$hook_suffix");
do_action('admin_head');

Vous pouvez donc utiliser admin_print_styles-$hook_suffix, dans vos cas:

add_action( 'admin_print_scripts-post-new.php', 'your_prefix_enqueue_scripts' );
add_action( 'admin_print_scripts-post.php',     'your_prefix_enqueue_scripts' );

Pour trouver le $hook_suffix correct pour n'importe quelle page d'administration, utilisez quelque chose comme ceci:

add_action( 'admin_footer', 'print_hook_suffix' );

function print_hook_suffix()
{
    global $hook_suffix;

    print '$hook_suffix: ' . $hook_suffix;
}
6
fuxia