Boîte méta personnalisée WordPress lors de l’ajout/de la modification d’une page avec un certain type de modèle

Publié par Jean-Michel le

Je sais très bien comment ajouter des champs personnalisés aux pages. Cependant, je souhaite que ma boîte méta n’apparaisse qu’une fois que l’utilisateur a sélectionné le modèle « Foo » (filname « foo.php »). J’ai chargé jQuery dans la section admin mais je n’ai pas eu de chance d’essayer d’ajouter une classe personnalisée au conteneur contenant la méta-boîte.

Remarque : Je ne veux pas sélectionner par l’ID de la méta-boîte div car il y aura plusieurs méta-boîtes cachées et je n’aurai aucun moyen de toutes les cacher à la fois sans qu’une classe ne soit attribuée (d’où mon problème).

Lire également:  Comment créer une recherche de catégories multi-déroulantes wordpress

Solution n°1 trouvée

Ma solution à cela était de créer un div dans chaque méta-boîte personnalisée, puis d’utiliser jquery pour masquer tous les éléments parents de ces divs.

Solution n°2 trouvée

Ce n’est pas une solution complète, mais cela pourrait vous aider à démarrer dans la bonne direction :

Dans le code qui affiche la boîte de méta, vous pouvez utiliser la fonction get_post_meta pour obtenir des informations sur le modèle utilisé par la page actuelle. Quelque chose comme ça:

if( get_post_meta($post_id, '_wp_page_template', true) != 'foo.php' ) return;

L’inconvénient est que l’utilisateur doit d’abord choisir le modèle, puis enregistrer la page une fois afin de recharger la page d’administration avec les bons paramètres.

Lire également:  Wordpress : Wpautop dans wp_editor ne fonctionne pas

Sinon, je pense que la solution que vous décrivez en utilisant jQuery pour masquer les méta-boîtes est la meilleure façon de le faire.

Bonne chance

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *