web-dev-qa-db-fra.com

Mise en file d'attente des scripts et styles de plusieurs CPTS

J'essaie de charger plusieurs scripts et feuilles de style dans un plugin que je crée. Je veux charger des scripts dans plusieurs CPT au sein de l'administrateur. J'ai eu jusqu'ici:

function fhaac_admin_enqueue_scripts(){
    global $pagenow, $typenow;

    if ( ($pagenow == 'post.php' || $pagenow == 'post-new.php') && $typenow == 'fhaac' ){}
}

Les scripts sont chargés dans le fhaac, mais rien d’autre. Je ne sais pas comment ajouter plusieurs CPT. J'ai essayé de les ajouter dans un tableau, mais cela n'a pas fonctionné.

De l'aide serait grandement appréciée.

À votre santé

1
Ollie

Il existe une fonction intégrée que vous pouvez utiliser au lieu de globals. La fonction get_current_screen() vous permet d'obtenir les informations associées à la page en cours.

Une de ses valeurs de retour est post_type. Ainsi, vous pouvez vérifier un tableau de types de publications pour voir si quelqu'un correspond.

function fhaac_admin_enqueue_scripts(){
    $screen = get_current_screen();
    if (
        in_array( $screen->post_type, array('fhaac','blabla')) &&
        $screen->base == 'post'
     ) { // Do something }
}
1
Jack Johansson

Il y a un travail très simple autour de:

Chargez-le partout et exécutez le code uniquement si la page correspond

Par exemple, sur mon site, j'ai un CPT nommé projects et sur la balise body, les éléments suivants:

<body
    class="wp-admin wp-core-ui js   jetpack-connected  edit-php auto-fold admin-bar post-type-project branch-4-8 version-4-8 admin-color-fresh locale-en-us multisite customize-support sticky-menu svg">

Je sais donc que ma liste de messages correspondra à body.edit-php et body.post-type-project

Donc pour CSS:

body.post-type-project.edit-php .... {
    ....
}

Et je peux faire la même vérification en javascript avec jQuery

0
Tom J Nowell