Je sais comment afficher mes groupes de champs sur des pages spécifiques (emplacement d'affichage: la page est égale à myPage).
J'ai plusieurs modèles sur mon site et je souhaite afficher le groupe de zones X lorsque la page utilise le modèle Y. Est-ce possible?
Difficile de donner une réponse exacte sans partager votre code, mais utiliser is_page_template()
dans une instruction if
vous aidera à déterminer à quel moment vous affichez votre groupe de champs personnalisés:
if ( is_page_template( 'template-y.php' ) ) {
# Display Field Group X code here...
}
else {
# Do something else...
}
Encore une fois, si vous pouviez fournir votre code, je pourrais vous donner une meilleure réponse.
Vous dites que vous savez déjà comment ajouter des champs. Une fois que vous ajoutez la metabox contenant ces champs, ajoutez le code suivant. Cela basculera l'affichage de la métabox lorsque le modèle de page est modifié. Vous devez modifier l'id de la métabox et le nom du fichier du modèle de page qui, une fois sélectionné, devrait afficher la métabox. Inspectez la page pour trouver l'id de metabox.
Ainsi, si la metabox a un identifiant de "metabox_id" et que vous voulez qu'elle apparaisse lorsque le nom de fichier du modèle de page sélectionné est "template-file-name.php", utilisez ce qui suit.
Dans functions.php
add_action('admin_enqueue_scripts', 'my_admin_script');
function my_admin_script() {
wp_enqueue_script('my-admin', get_bloginfo('stylesheet_directory').'/js/custom-admin.js', array('jquery'), '1.0.0', true);
}
Dans custom-admin.js
(function($){
$(document).ready(function() {
$('#page_template').change(function() {
$('#metabox_id').toggle($(this).val() == 'template-file-name.php'); //Change
}).change();
});
})(jQuery);