Benutzerdefinierte Felder in Wordpress Teil 1

wp_logoIn Wordpress können Autoren, willkürlich zusätzliche Informationen, in einen Beitrag einfügen. Ob Werbung oder andere Informationen. Das geht ganz einfach mit benutzerdefinierte Felder, die in jeden Artikel eingefügt werden können.

 

 

Beim Artikelschreiben kann oben rechts, unter Optionen einblenden, die Auswahl Benutzerdefinierte Felder aktiviert werden. Sie erscheint dann unterhalb des Beitrages.

 

Viele Nutzer von Wordpress fragen sich, wozu sind die “Benutzerdefinierten Felder”? Was kann man damit machen? Und wie werden die Felder in die Seite eingebunden?

 

Benutzerdefinierte Felder in Wordpress dienen zur Erweiterung von Beiträgen. So kann zum Beispiel oberhalb der Überschrift oder unterhalb der Kommentare eine zusätzliche Information eingefügt werden.

 

Diese zusätzlichen Informationen werden als Metadaten bezeichnet. Diese Metadaten können alle Arten von Informationen enthalten, wie zum Beispiel:

  • Texte
  • Bilder
  • Listen
  • Formulare
  • etc

 

Metadaten haben einen Namen(Schlüssel) und einen Wert. Der Name ist das Metadaten Element. Der Wert ist die Information in der Metadaten-Liste, die der Ausgabe, die im Beitrag erscheint, zugeordnet ist.

 

Der Name(Schlüssel) kann mehrfach verwendet werden. Beispiel, wenn zwei verschiedene Bücher erscheinen sollen, die Sie gelesen haben, können Sie einen “gelesen”-Schlüssel verwenden, und zweimal auf den gleichen Beitrag anwenden. Jeweils einen für jedes Buch.

 

Benutzerdefiniertes Feld hinzufügen

In diesen Beispiel werden zwei benutzerdefinierte Felder hinzugefügt, Fachbuch und Roman. Das folgende Tutorial zeigt, wie die Information mit benutzerdefinierte Felder an einen Beitrag übergeben wird.

 

  1. Nachdem ein Beitrag geschrieben wurde, nach unten scrollen, zum Bereich “Benutzerdefinierte Felder”. Hinweis: Seit Wordpress Version 3.1 ist der Bereich standardmäßig ausgeblendet. Er wird oben-rechts unter “Optionen einblenden” sichtbar gemacht.
  2. Neues benutzerdefiniertes Feld unter Name mit dem Namen “Fachbuch” hinzufügen (ohne Anführungszeichen).
  3. In das Feld Wert wird “Wordpress für Einsteiger” eingetragen. In diesem Beispiel ist es der Name des Buches (wieder ohne Anführungszeichen).
  4. Auf Benutzerdefiniertes Feld hinzufügen klicken, um das benutzerdefinierte Feld für diesen Beitrag zu speichern.

 

Um ein weiteres Buch einzufügen, wird der Prozess einfach wiederholt. Im Beispiel: Name: Roman, Wert: Meine schönsten Träume.

 

benutzerdefiniertes-feld

 

 

Der Schlüssel muss nur einmal erstellt werden, danach können Sie einen Wert für diesen Schlüssel in jeden Beitrag zuweisen. Es kann auch mehr als ein Wert, zu einem Schlüssel vergeben werden.

 

Anzeigen des Benutzerdefinierten Feldes

Jetzt kann die Anzeige auf der Wordpress Seite definiert werden.

 

Um die benutzerdefinierten Felder in jedem Beitrag anzeigen zu lassen, wird der Template-Tag(Befehl) “the_meta( )” benutzt. Der Tag muss innerhalb des Loop(Schleife) gestellt werden (Für die Artikelübersicht in die index.php und für die Einzelansicht in die single.php). Meistens wird der Template-Tag am Ende des Beitrages eingefügt (vor dem Befehl “endwhile”).

<?php the_meta(); ?>

 

Der Quellcode im Browser würde so aussehen:

<ul class='post-meta'> 
<li><span class='post-meta-key'>Fachbuch:</span> Wordpress für Einsteiger</li>
<li><span class='post-meta-key'>Roman:</span> Meine schönsten Träume</li>
</ul>

 

Der Template-Tag vergibt automatisch die CSS-Klasse “post-meta” für den gesamten Bereich. Der Name(Schlüssel) ist in der span-Klasse ”post-meta-key”. Alles wird in einer ungeordneten Liste dargestellt. So kann das Feld optimal in der style.css gestaltet werden.

 

style.css

.post-meta { 
    border: #000 1px solid;
    color: red;
    padding-left: 20px;
}
.post-meta-key {
    color: green;
    font-weight: bold;
    font-size: 110%;
}

 

Nach dem Beispiel würde das benutzerdefinierte Feld in einem Beitrag so aussehen:

 

custom-field

 

 

Zu einem Namen können weitere Werte hinzugefügt werden:

 

custom-field

 

Beispiel: Zweiter Wert zum Namen “Fachbuch”.

 

image

 

Die Ausgabe auf dem Bildschirm sieht dann so aus:

 

Benutzerdefiniertes Feld

 

Die Werte werden in ein Array gespeichert.

 

Die Template Funktion “the_meta ( )” ist die einfachste Art, um die Funktion der benutzerdefinierten Felder in Wordpress darzustellen.

 

 

Erweiterte Techniken für benutzerdefinierte Felder

 

Mit der Funktion “get_post_meta( )” werden nur die Meta-Werte aus den benutzerdefinierten Feldern geholt, die angegeben sind. So kann die Funktion einmal oberhalb des Beitrages und einmal unterhalb des Beitrages, mit verschiedenen Namen(Schlüssel) positioniert werden.

 

get_post_meta($post_id, $key, $single);

 

  • $post_id ist die ID des Beitrages der Meta-Werte. Innerhalb der $post-Variable wird “$post->ID” verwendet. Um die ID des aktuellen Elements aufzurufen, wird “get_the_ID( )” verwendet.
  • $key ist der Name(Schlüssel) des Metawertes.
  • $single kann entweder true oder false sein. Wenn auf true gestetzt, wird die Funktion ein einzelner String. Wenn false gesetzt ist, werden die benutzerdefinierten Felder in ein Array ausgegeben.

 

Die Meta-Informationen werden in der Datenbank-Tabelle “postmeta” gespeichert.

Die Tabelle hat vier Felder:

meta_id – Eine eindeutige ID für jeden Eintrag.

post_id – Die ID des Beitrages für die Metadaten.

meta_key – Der Name des Schlüssels.

meta_value – Der Wert der mit dem Schlüssel verbunden ist.

 

Die Werte aus der Tabelle werden in ein mehrdimensionales Array mit $post_meta_cache nach dem $post-Array an die wp-blog-header.php übergeben. Das bedeutet, es können nur die Werte, die im aktuellen Beitrag aufgelistet sind, übergeben werden.

Die Struktur des Array:

[ 
    postid1 => [
         key1 => [wert1, wert2, ...  ],
         key2 => [wert1, wert2, ...  ],
         ...
    ],
    postid2 => [
         key1 => [wert1, wert2, ...  ],
         key2 => [wert1, wert2, ...  ],
         ...
    ],
    ...
]

 

Beispiel: Wenn der Wert “lesen” aus der post-Nummer 256 geholt werden soll, wird folgender PHP-Code verwendet:

$readinglist = $post_meta_cache[256]['lesen'];

$readinglist ist ein Array und kein Einzelwert(String).

 

PostMeta Funktionen

Diese Funktionen sind für den Einsatz innerhalb des Loop, alle geben Arrays zurück.

 

get_post_custom( )

Holt alle Schlüssel/Wert Daten für den aktuellen Beitrag.

 

get_post_custom_keys( )

Holt alle Schlüsselnamen für den aktuellen Beitrag.

 

get_post_custom_values($key)

Holt die Werte für einen bestimmten Schlüssel für den aktuellen Beitrag.

 

get_post_meta($post_id, $key, $single = false)

Diese Funktion wurde in Wordpress 1.5 eingeführt und sollte bevorzugt genutzt werden, da sie ohne Cache-Probleme funktioniert. Allerdings erfordert die Funktion die Angabe der post id, und den Schlüssel. Wenn $single auf “true” gesetzt ist, wird nur der erste Wert angezeigt, weil die Ausgabe dadurch ein String und kein Array mehr ist. Wird $single weggelassen, ist $single automatisch false.

 

<?php $key=""; echo get_post_meta($post->ID, 'meinkey', true); ?>

Dieser PHP-Code gibt mit echo den Meta Wert des Namen ”meinkey” als String aus. Wenn ein Key nur einen Wert hat, wird kein Array benötigt.

 

Mit einigen zusätzlichen Kodierungen ist es möglich, komplexere Aktionen durchzuführen. Der Möglichkeiten sind keine Grenzen gesetzt.

 

In weiteren Beiträgen werden hier auf der Seite einige Funktionen vorgestellt.

 

 

Weitere Informationen

 

Benutzerdefinierte Felder in Wordpress Teil 2

Werbeblöcke, Hinweistexte und andere Informationen über benutzerdefinierte Felder.

 

Benutzerdefinierte Felder in Wordpress Teil 3

Praktische Möglichkeiten mit einer Funktion in der functions.php.

Bei einer Änderung müssen nicht alle Dateien, wie index.php, single.php, loop.php, kategorie.php etc. geändert werden. Dies kann man Global in der functions.php erledigen.

Außerdem: Benutzerdefinierte Felder an verschiedenen Positionen.

 

Benutzerdefinierte Felder in Wordpress Teil 4

Mit get_post_meta Bilder anzeigen. Der Bildname wird als Wert eingegeben.

 

Benutzerdefinierte Felder in Wordpress Teil 5

benutzerdefinierte Felder außerhalb der Schleife(Loop).

 

Wordpress Theme selbst erstellen

Kommentare   

0 #3 cheffe 2014-09-12 13:10
Benutzerdefinie rte Felder sind eine interessante Möglichkeit einen Beitrag zu erweitern.

Sehr gut beschrieben :-)

Vielen Dank.
cheffe
Zitieren
0 #2 Manni 2013-02-19 10:39
Hallo Sigrid,

in dem Beispiel wird gezeigt wie mit den automatisch generierten Klassen das Design der Benutzerdefinie rten Felder über die style.css angepasst werden kann.

Notwendig ist das nicht. Aber es gibt einem die Möglichkeit die Benutzerdefinie rten Felder vom Beitrag optisch abzuheben.
Zitieren
0 #1 Sigrid Pforr 2013-02-19 00:28
Hallo

Ich bin neu dazu gestoßen und verschlinge alles was notwendig scheint um hier eine Webseite zum laufen zu bringen

Ich frage mich gerade verzweifelt, warum es notwendig sein soll in der style.css dafür zu sorgen das die Bücher grün und die Buchtitel rot geschrieben werden ... da ich hier ohne Programmierkenn tnisse ran gehen muß - freue ich mich natürlich über jeden schritt den ich nicht machen muß um im code rumzubasteln

vielen Dank im voraus für die Antwort
Zitieren

Kommentar schreiben


Sicherheitscode
Aktualisieren