web-dev-qa-db-fra.com

Création dynamique de méta-boîtes

Je me demandais donc s'il était possible de créer de manière dynamique des méta-boîtes dans le post-admin. J'ai beaucoup de données mais je ne veux pas coder en dur toutes les méta-boîtes nécessaires dans functions.php.

Un exemple serait un type d'article personnalisé pour les films, je veux créer différentes boîtes à méta pour tous les acteurs du film.

Est-il possible d'ajouter des méta-boîtes de manière dynamique avec la possibilité de les ajouter et de les supprimer dans le post-admin?

Merci!

2
Marco

Je réfléchirais sérieusement à la classe de métaboxes WPAlchemy. Il fait exactement ce que vous recherchez et bien plus encore.

http://www.farinspace.com/wpalchemy-metabox/#have_fields_and_multi

Ce cours est tellement bon que je suis franchement choqué de constater qu’il n’ya pas beaucoup de discussion à ce sujet. * S'il y a une meilleure classe de métaboxes, j'aimerais beaucoup en entendre parler, même si je suis très heureux avec WPAlchemy.

3
shawn

Il est possible d'utiliser une classe Metabox qui gère la plupart des codages pour vous.

* S'il y a une meilleure classe de métaboxes, j'aimerais beaucoup en entendre parler, même si je suis très heureux avec WPAlchemy.

Je préfère utiliser la classe Custom Metaboxes and Fields for WordPress de Jared Atchison et Bill Erickson. Il est très extensible et facile à utiliser et à développer.

My fork of it vous permet de créer également des champs de taxonomie select et de taxonomy radio.

1
Chris_O

J'ai eu vos mêmes exigences pour un site que je développe maintenant. J'ai utilisé avec succès les deux plugins suivants pour aider à créer un type de message personnalisé et des boîtes de méta directement dans la zone d'administration: Interface utilisateur du type de message personnalisé et Modèle de champ personnalisé .

Le seul code requis est la création d'un page-.php dans votre dossier de thème, puis utilisez un code similaire à:

<h1><?php echo get_post_meta($post->ID, 'Name', true); ?> "<?php echo get_post_meta($post->ID, 'Title', true); ?>"</h1>

pour récupérer et formater à votre guise les informations fournies dans les métaboxes.

0
Drake

Oui, c'est possible, jetez un oeil à Verve Meta Box plugin

Une fois installé, vous trouverez un écran de configuration sous Outils dans la navigation de gauche. Là, vous pouvez créer plusieurs méta-boîtes, chacune avec un ensemble de champs personnalisés triables définis par l'utilisateur. Voir les captures d'écran pour plus de détails.

0
Bainternet

Cela pourrait également être fait en utilisant JavaScript. Il vous suffit de créer dynamiquement des champs supplémentaires, puis de les cibler tous sur le même tableau de destination. Ainsi, les champs créés par JavaScript seront nommés comme suit:

<input type="text" name="actors[actor1]" id="actors[actor1]" />
<input type="text" name="actors[actor2]" id="actors[actor2]" />
<input type="text" name="actors[actor3]" id="actors[actor3]" />

L'action de création de ces champs côté client pourrait simplement être attachée à un bouton "Ajouter un acteur" ou à quelque chose du genre.

0
hereswhatidid

Contrôle MetaBox via une interface utilisateur de tableau de bord:

Champs personnalisés avancés - Excellent et facile.

Magic Fields 2 - J'en ai utilisé et je n'en suis pas fan ...

FWIW, comme je n’ai jamais été fan de la création de métaboxes via une interface utilisateur, j’utilise toujours l’une de ces deux classes:

Pour WP Metabox PHP Classes:

CMB - Mon personnel mon préféré par Atchinson, Erickson, Norcross. C'est rapide et facile pour la plupart des besoins.

WPAlchemy - Je suis aussi un fan de WPAlchemy car il inclut les champs répétitifs et les groupes de champs répétitifs, ce que CMB a ajouté un jour mais l'a déjà fait (je pense que tout le monde est trop occupé pour le faire).

0
jb510