J'essaie de créer une méta-boîte personnalisée avec plusieurs champs de texte. L'idée est qu'il y a initialement une zone de texte, ensuite vous pouvez cliquer sur le bouton "Ajouter un nouveau" et une autre zone de texte est ajoutée (avec Ajax; inutile de publier ou de mettre à jour le message pour que la zone de texte soit créée). J'utilise le code suivant (ci-dessous), mais cela ne fonctionne tout simplement pas. Je suis complètement coincé; vraiment besoin d'aide. Je suis même prêt à faire un don en espèces si quelqu'un peut m'aider à comprendre cela.
Si votre objectif est d’ajouter des zones de texte de manière dynamique, tout en demandant à l’utilisateur de sauvegarder/mettre à jour le message, il n’est pas nécessaire d’utiliser AJAX.
Nommez simplement les champs de texte de manière appropriée afin qu’un tableau de valeurs soit POSTÉ, puis manipulez-le dans votre action de sauvegarde.
Il peut être utile de sauvegarder ce tableau dans une seule clé meta post afin que vous puissiez simplement le parcourir en boucle pour afficher la boîte méta.
Donnez un identifiant au <div>, quelque chose comme 'slideshow_metabox'
Définissez vos zones de texte initiales comme suit:
<input type="text" style="position: relative; right: 0; width: 85%;" name="slideshow[]" value="<?php echo $value; ?>" />
Et changez votre bouton "Ajouter" pour être:
function() {
jQuery('#slideshow_metabox').append('<input type="text" style="position: relative; right: 0; width: 85%;" name="slideshow[]" value="" />');
}
J'espère que cela t'aides.
Voici un script que j'ai écrit et que j'ai utilisé dans 5 à 6 types de méta-boîtes personnalisés. J'adore avoir l'option Ajouter/Supprimer des champs, accélère considérablement les choses car WP peut être très lent lorsque vous enregistrez/publiez des publications, même si vous pouvez simplement les publier dans le fichier admin-ajax.php en arrière-plan. et être beaucoup plus rapide.
http://new2wp.com/snippet/jquery-add-remove-extra-input-form-fields/