Ich möchte, dass Benutzer nach Bedarf zusätzliche Meta-Box-Felder erstellen und entfernen können.
Sagen wir zum Beispiel einen Musik-Podcast mit einer variablen Anzahl von Songs, die pro Episode abgespielt werden. Der Benutzer sollte in der Lage sein, auf eine Schaltfläche zu klicken, die zusätzliche Felder hinzufügt, um jedes Lied nach Bedarf einzugeben.
Im Idealfall würde dies ohne die Verwendung eines Plugins geschehen, das jedoch in der Funktionsdatei codiert ist.
Antworten:
Also meinst du so etwas?
und wenn du auf Add tracks klickst, wird es so:
Wenn es das ist, was Sie meinen, indem Sie eine Metabox erstellen, die über eine einfache Abfragefunktion zum Hinzufügen und Entfernen von Feldern verfügt, und die Daten als Array von Daten in einer einzelnen Metazeile gespeichert werden, dann gehen Sie wie folgt vor:
quelle
var_dump($songs);
if (count($songs) > 0){
if(is_array($songs)){
Dies erfolgt über benutzerdefinierte Felder, ABER Sie sollten niemals Elemente verwenden, mit denen Benutzer Meta-Boxen
hinzufügenoder entfernen können. Diese werden direkt in die Datenbank geschrieben, sodass Sie möglicherweise eine ganze Reihe von Problemen für Ihre Site verursachen können, wenn Sie den Benutzern diese Art der Kontrolle geben. Es ist für Sie weitaus sicherer, die maximale Anzahl von benutzerdefinierten Feldern zu erstellen, die sie möglicherweise benötigen, und einige Felder leer zu lassen, wenn sie nicht benötigt werden.Dies ist auch Plugin-Gebiet. Die Funktionsdatei ist themenspezifisch, während Plug-ins für Funktionen gelten, die für den Websiteinhalt gelten, insbesondere, wenn dieser Inhalt verfügbar sein soll, unabhängig davon, welches Thema Sie verwenden.
Einige Vorschläge:
http://wordpress.org/extend/plugins/verve-meta-boxes/
http://wordpress.org/extend/plugins/more-fields/
quelle