J'aimerais qu'une interface de champ personnalisée n'apparaisse que lorsqu'un certain modèle est attribué à une page WordPress particulière.
Des idées?
wp-admin
conditional-tags
Jonathan Wold
la source
la source
Réponses:
La meilleure façon d'aborder cette situation est via JavaScript. De cette façon, chaque fois que la valeur sélectionnée change, vous pouvez instantanément masquer / afficher la métabox associée.
Utilisez
wp_enqueue_script()
infunctions.php
pour charger un fichier JavaScript personnalisé dans la zone d'administration:Le script lui-même, qui nécessite jQuery, masque ou affiche simplement une métabox basée sur la valeur sélectionnée dans la liste déroulante du modèle de page. Dans cet exemple, je montre uniquement la métabox pour les miniatures de publication au cas où le modèle de page par défaut est sélectionné:
Et, juste pour le plaisir, voici une version plus courte et moins verbeuse du même script:
la source
Plutôt que de rendre la métabox uniquement pour la masquer avec jQuery, vous pouvez l'utiliser. La seule différence étant que le masquage / affichage de la métabox nécessite de sélectionner «Mettre à jour» après avoir modifié le champ déroulant.
Mettez à jour les lignes 6 et 7 comme vous le souhaitez.
la source