2017-09-28 4 views
1

Je souhaite ajouter un bouton "Ajouter une ligne" à ma Metabox.
Dans cette métabox, l'utilisateur peut écrire des mots-clés, qui seront ensuite affichés.
Parce que je ne sais pas combien de mots-clés l'utilisateur écrira, je veux le bouton "Ajouter une ligne" pour ajouter dynamiquement une nouvelle ligne d'entrée.Entrée Wordpress Metabox - Ajout du bouton "Ajouter une ligne" à l'entrée de texte

Voici une photo de ce que je veux:
enter image description here

Comme vous pouvez le voir, j'ai 3 lignes avec du texte d'entrée. Lorsque je clique sur le bouton "Ajouter une ligne", une autre ligne avec exactement les mêmes entrées de texte doit être affichée.

Je ne sais pas comment réaliser cela, mais je sais que c'est possible.
Peut-être que certains d'entre vous ont déjà fait quelque chose comme ça et peuvent m'aider à trouver la solution?

Merci!

+0

Est-il vraiment nécessaire d'écrire son propre code? Il existe une alternative plus facile .... – unnamedfeeling

+0

Pas nécessairement. Si vous avez une alternative plus facile, alors je m'y intéresse;) – Schlodi

Répondre

1

Avez-vous essayé d'utiliser un cmb2 comme plugin ou framework? Il a une fonctionnalité intégrée dont vous avez besoin appelé «champs reproductibles» ... link. Il ne vous donnera pas la flexibilité à première vue (comme vous ne serez pas capable de coder n'importe quel champ dans wordpress metabox avant d'apprendre quelques principes de ce framework), mais pour une chose aussi simple que des champs répétables, c'est simple:

$cmb->add_field(array(
    'name' => 'Test Text', //field name 
    'desc' => 'field description (optional)', //field desc 
    'default' => 'standard value (optional)', //self-explanatory, can be even a meta value 
    'id'  => 'wiki_test_text', //field id - you can access it later via get_post_meta($post->ID, 'wiki_test_text', true) 
    'type' => 'text', //many pre-built types + external field types 
    'repeatable' => true // here`s the magic - https://i.imgur.com/WSiYLrP.png (i speak mostly russian, but i think that the screenshot can be read even if you don`t understand russian...) 
)); 

Celui-ci m'a sauvé des tonnes de temps!

+0

Semble legit. Je vais essayer. Si cela a fonctionné pour moi, vous obtiendrez une upvote :) – Schlodi