Ich habe einen benutzerdefinierten Beitragstyp namens "Software", der in verschiedenen benutzerdefinierten Feldern wie Untertitel, Preis, Screenshots, Download-Link usw. enthalten ist. Ich habe eine Funktion erstellt, die die Verwendung des tinyMCE-Bearbeitungsfensters für einige dieser benutzerdefinierten Felder ermöglicht. Ich habe versucht, diese Felder auf der Seite anzuzeigen, aber ohne Erfolg.
Die Methode, die ich benutze, ist die folgende:
<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>
Hier ist ein Link zur Seite.
Unterhalb der <hr/>
auf der Seite befindet sich eine Liste aller erstellten Metas. Das EINZIGE der Felder, die angezeigt werden, ist "Preis" aus irgendeinem seltsamen Grund.
Hat jemand eine Idee, was ich vermisse?
get_post_meta()
Funktion, und wenn Sie sie innerhalb der Schleife aufrufen, sollte sie funktionieren ... Es sei denn, Sie verwenden nicht den richtigen benutzerdefinierten Feldnamen. Sie werden oft mit einem Präfix versehen, wenn sie über ein Plugin wie eine Meta-Box implementiert werden. Können Sie den Code posten, wie Sie Ihre benutzerdefinierten Felder deklarieren? Eine Lösung wäre, die Tabelle wp_postmeta in PhpMyAdmin zu öffnen und die Spaltemeta_key
nach LIKE% ...% zu durchsuchen und "subtitle" als meta_key-Wert anzugeben. Sie werden genau sehen, unter welchem Namen Wordpress Ihr benutzerdefiniertes Feld speichert.Antworten:
Nun, Sie verwenden:
Sie sagen also zu Wordpress, dass der Meta-Wert des Felds "Untertitel" und der zurückgegebene Wert im Zeichenfolgenformat vorliegen sollen. Siehe get_post_meta () docu .
Um alle Metadaten eines Posts zu erhalten, sollten Sie stattdessen die Funktion get_post_custom () verwenden. Zum Beispiel, wenn Sie sich in der Schleife befinden:
Dadurch werden alle Metadaten des Posts zurückgegeben. Wenn Sie beispielsweise das Meta-Feld "Preis" überprüfen möchten:
quelle
$custom['price']
gibt einen Array zurück , so dass Sie tun müssen , um$custom['price'][0]
Verwenden Sie diesen Code, um Ihr Problem zu lösen.
quelle