Je suis nouveau dans WordPress et je construis donc mon premier thème avec des options de thème. Je suis confronté au problème dans les pages d'options de thème que j'ai créées sous admin. J'ai deux styles différents pour mes options de thème dans la zone d'administration lorsque je mets en file d'attente les scripts destinés à l'administrateur, le problème est le suivant:
Lorsque je mets en file d'attente les scripts, le script chargé sur toutes les pages d'administration, je souhaite simplement le charger sur la page d'options de thème.
Comme je l'ai mentionné ci-dessus, j'ai deux styles différents en fonction de deux pages d'options de thème différentes. Comment puis-je charger le style en conséquence?
Si simple, je vais l'expliquer étape par étape:
Commencez par utiliser la variable $ hook qui correspond par défaut à WordPress:
function the_themescripts($hook) {
echo $hook;
}
add_action( 'admin_enqueue_scripts', 'dr_theme_options_style_scripts' );
Maintenant, allez à la page personnalisée dans votre tableau de bord d'admin WP et en haut, vous verrez quelque chose comme toplevel_page_your_theme_page_slug
s'il ne vous est pas visible, essayez d'inspecter un élément et voyez après la copie de la balise que vous utilisez comme ceci.
Utilisation de la variable $hook
. Utilisez-le dans la boucle if else
function the_themescripts($hook) {
echo $hook;
if ($hook == 'toplevel_page_your_page_slug') :
// enqueue your script/styles here for your first page
endif;
if ($hook == 'your second page slug' ) :
// enqueue your script/styles here for your first page
endif
}
add_action( 'admin_enqueue_scripts', 'the_themescripts' );
J'espère que cette explication aide :)
Pour détecter la page en cours dans le panneau d'administration, vous pouvez utiliser une variable globale nommée $pagenow
. Jetez un oeil à cet exemple:
function my_admin_enqueue() {
global $pagenow;
// Get the current page
if (isset($_GET['page'])) {
$current_page = $_GET['page'];
} else {
$current_page = '';
}
// Check both current page base and slug
if( ( $pagenow == 'themes.php' ) && ( $current_page == 'my-theme-settings' ) ) {
// Now enqueue your script and styles here
}
}
add_action('admin_enqueue_scripts', 'my_admin_enqueue');