Benutzerdefinierte Felder in Wordpress außerhalb des Textbereiches Teil 5

wp_logoBenutzerdefinierte Felder sind eigentlich für zusätzliche Informationen in Artikeln gedacht. Mit einem kleinen Codeschnipsel im Theme kann man benutzerdefinierte Felder überall auf der Seite darstellen, ohne ein speicherlastiges Plugin benutzen zu müssen.

 

Spezielle Inhalte in Artikel werden in der Regel über benutzerdefinierte Felder in Wordpress eingefügt. Standartmäßig ist das nur für den Textbereich(innerhalb der Text-Schleife) vorgesehen.

 

Um benutzerdefinierte Felder außerhalb der Schleife(Loop), in den Kopfbereich(header), Seitenleiste(sidebar), Fußbereich(footer) oder wo man die Felder eben haben will, zu nutzen, muss ein kleiner Codeschnipsel in das Theme eingefügt werden.

 

Die Einbindung in das Theme

Der folgende Code wird an die Stelle im Wordpress-Theme eingefügt, an welcher das Feld erscheinen soll.

<?php
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'feldname', true);
?>
  • Mit "$postid = $wp_query->post->ID" wird die Darstellung außerhalb des Loop möglich.
  • Das Wort “feldname”, muss mit dem Namen des benutzerdefinierten Feldes ersetzt werden.

 

Möchte man in Wordpress das benutzerdefinierte Feld über eine Funktion in die functions.php integrieren, wird folgender PHP-Code benutzt:

<?php 
function my_custum_field() {
    global $wp_query;
    $postid = $wp_query->post->ID;
    echo get_post_meta($postid, 'feldname', true);
}
?>

Die Variable “$wp_query” muss in der Funktion mit “global” bekannt gemacht werden.

 

Die Eingabe in die benutzerdefinierten Felder ist in “Benutzerdefinierte Felder Teil 1” und “Benutzerdefinierte Felder Teil 2” ausführlich beschrieben.

 

Jetzt erscheint beim Aufruf des bestimmten Artikels, das “Benutzerdefinierte Feld” an gewünschter Stelle auf der Wordpress-Seite.

 

Wenn der PHP-Code z.B. im Kopfbereich (header.php) eingefügt wird, erscheint das benutzerdefinierte Feld sobald der entsprechende Artikel auf der Seite zu sehen ist (In der Artikelübersicht-index.php und in der Einzelansicht-single.php).

 

Soll das benutzerdefinierte Feld nur in der Seiten- und Artikel-Einzelansicht erscheinen, wird der PHP-Code um folgendes erweitert:

<?php
if (is_single() || is_page()) {
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'feldname', true);
}
?>

Hier im Beispiel ist die Funktion "is_single( )" für Artikel und "is_page( )" für Seiten dargestellt. Weitere Beschreibungen zu diesen Funktionen sind zu finden unter Conditional Tags.

 

Auf diese Weise können alle Arten von “get_post_meta( )” benutzt werden, um die benutzerdefinierten Felder von Wordpress außerhalb des Loop(Schleife) zu verwenden.

 

Die Funktion "the_meta( )" (siehe Benutzerdefinierte Felder Teil 1) kann standartmäßig überall auf der Seite positioniert werden.

 

 

Weitere Informationen

 

Benutzerdefinierte Felder in Wordpress Teil 1

Allgemeine Informationen über die Funktionen der benutzerdefinierten Felder.

 

Benutzerdefinierte Felder in Wordpress Teil 2

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

  

Benutzerdefinierte Felder in Wordpress Teil 3

Praktische Möglichkeiten über eine 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.

Kommentare   

0 #2 Manni 2012-01-02 22:08
Bei den Anweisungen in den Eckigen Klammern handelt es sich um sogenannte Shortcodes. Diese funktionieren nur im Texteditor. Für diesen Shortcode gibt es eine Funktion im Plugin, welche die Ausgabe steuert.

Es müsste das Plugin für benutzerdefinie rte Felder erweitert werden, mit einer Funktion, die die Wetterdaten ausliest.
0 #1 Markus 2012-01-02 21:08
Sehr schön, danke :)

Eine Frage hätte ich aber: in dem Feldern ist es nicht möglich, eine Anweisung von einem anderen Plugin zu übergeben? Bei mir z.b. das Wetter, welches über [forecast location="Alten holz, Deutschland"... ...] ausgegeben werden soll. Klappt im Editor vom Artikel, wird über das Extrafeld aber als normaler Text ausgegeben. Ist das dort nicht möglich? :sigh:

Danke!
grüße Markus