Die Funktion der benutzerdefinierten Felder in WordPress ist wirklich eine tolle Sache. Merkwürdiger Weise wird sie kaum genutzt. Mir kommt es so vor das nur die richtigen Cracks (Nerds) den benutzerdefinierten Feldern die Beachtung schenken, die sie auf Grund ihrer Vielseitigkeit auch verdienen. Dabei ist es eigentlich ziemlich einfach diese im eigenen Weblog zu nutzen, um dem Besucher einen gewissen Mehrwert zu bieten. Mit den benutzerdefinierten Feldern können die Meta-Daten von Artikeln mit Informationen angereichert werden, sie können verwendet werden um z.B. Werbung in Artikeln einzubauen und sogar außerhalb des Loops können sie eingesetzt werden.
Ich habe vor ein paar Wochen zwei [wpseo]benutzerdefinierte Felder[/wpseo] in die singel.php eingebaut um meine Quellen und die im Artikel verlinkten Websites bei den Meta-Daten des Artikels auszugeben. Bis dato hatte ich einfach am Ende jeden Artikels diese Angaben im Texteditor von [wpseo]WordPress[/wpseo] eingegeben, doch das gefiel mir nicht so gut, da diese Angaben meiner Meinung nach nicht zum Artikeltext gehören sondern halt zu den Meta-Daten. Der Code aus meiner single.php, der für die Darstellung der Felder verantwortlich ist sieht folgendermaßen aus.
benutzerdefiniertes Feld mit variabler Zeichenfolge ausgeben
<?php $sites = get_post_custom_values('site'); ?>
<?php if(!(empty($sites))) { ?><p>verlinkte Websites: <?php echo $sites[0]; ?></p><?php } ?>
<?php $quellen = get_post_custom_values('quelle'); ?>
<?php if(!(empty($quellen))) { ?><p>Quellen: <?php echo $quellen[0]; ?></p><?php } ?>
Dieser Code sorgt wie gesagt dafür das innerhalb der Meta-Daten (also in der grauen Box) die Quellen und die verlinkten Websites angezeigt werden. Zum besseren Verständnis hier der komplette Code meiner Box für die Meta-Daten.
kompletter Code der Meta-Daten
<footer class="single-entry-meta">
<?php $sites = get_post_custom_values('site'); ?>
<?php if(!(empty($sites))) { ?><p>verlinkte Websites: <?php echo $sites[0]; ?></p><?php } ?>
<?php $quellen = get_post_custom_values('quelle'); ?>
<?php if(!(empty($quellen))) { ?><p>Quellen: <?php echo $quellen[0]; ?></p><?php } ?>
<?php if ( count( get_the_category() ) ) : ?><p>
<?php printf( __( 'Categories: %2$s', 'yoko' ), 'entry-utility-prep entry-utility-prep-cat-links', get_the_category_list( ', ' ) ); ?></p>
<?php endif; ?>
<?php $tags_list = get_the_tag_list( '', ' , ' );
if ( $tags_list ): ?><p>
<?php printf( __( 'Tags: %2$s', 'yoko' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); ?></p>
<?php endif; ?>
<div class="clear"></div>
<div class="box">
<div class="wikios">
<a href="http://www.wikio.de/high-tech/internet" target="_blank"><script src="http://www.wikio.de/getvote?style=capsulewhite" type="text/javascript"></script></a>
</div>
<div class="twittern">
<iframe src="http://platform.twitter.com/widgets/tweet_button.html?url=<?php echo rawurlencode(get_permalink()) ?>&text=<?php echo rawurlencode(strip_tags(get_the_title())) ?>&lang=de&count=horizontal&via=hartgekocht" style="width:110px; height:20px;" frameborder="0" scrolling="no"></iframe>
</div>
<div class="gbut">
<g:plusone size="medium" count="true" href="<?php the_permalink();?>"></g:plusone>
</div>
<div class="fbshare">
<div id="fb-root"></div><script src="http://connect.facebook.net/de_DE/all.js#appId=220827684602944&xfbml=1"></script><fb:like href="<?php the_permalink();?>" send="false" layout="button_count" width="450" show_faces="true" font=""></fb:like>
</div>
<div class="twitterfollow">
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/follow_button.html?screen_name=hartgekocht&show_count=true&button=grey&text_color=000000&link_color=8D141E&lang=de" style="width:220px; height:20px;"></iframe>
</div>
</div>
</footer>
Nun kann ich bei einem Artikel entweder das Feld “site” oder das Feld “quelle” auswählen und im Feld Wert den link eingeben. Dieser muss als html eingegeben werden, also ungefähr so:
<a href="http://www.delijo.de">http://www.delijo.de</a>
[highlight]Wichtig![/highlight] Wenn noch nie bei einem Artikel das Feld eingefügt wurde erscheint das Feld auch nicht bei der Liste der verfügbaren Felder. Dann wird einfach ein neues Feld über den Link “neu eingeben” angelegt.
Zum besseren Verständnis noch ein Screenshot aus meinem Backend.

benutzerdefinierte Felder - Screenshot aus dem Backend
Weitere Möglichkeit für ein benutzerdefiniertes Feld
Ich nutze die benutzerdefinierten Felder indem ich im Backend in dem Textfeld “Wert” eine Zeichenfolge eingebe, die dann in den Meta-Daten angezeigt wird. Also eine Zeichenfolge die immer eine andere ist. Nun kann es ja auch sein das man immer die gleiche Zeichenfolge ausgeben möchte mit Hilfe eines benutzerdefinierten Feldes, zum Beispiel den Code einer Werbeanzeige. Damit diese Zeichenfolge nicht immer aufs Neue eingegeben werden muss sollte der Code in der single.php folgendermaßen aussehen.
benutzerdefiniertes Feld mit fester Zeichenfolge ausgeben
<?php if(get_post_meta($post->ID, ‘Adsense’, true) == ‘1’) : ?>
...Code der angezeigt werden soll, wenn benutzerdefiniertes Feld "Adsense" mit Wert "1"...
<?php endif; ?>
Natürlich bin ich nicht selber auf diese Möglichkeiten gekommen um die benutzerdefinierten Felder in meinem Blog zu nutzen. Ich suchte mir die entsprechenden Informationen einfach im Internet zusammen. Meine Quellen sind:
Warum ich noch mal extra Links in den Meta-Daten setze
Manch einer wird sich jetzt mit Sicherheit die Frage stellen warum ich noch mal extra Links zu meinen Quellen oder den verlinkten Websites in den Meta-Daten setze. Das ist doch doppelt gemoppelt. Also was soll das?
Ganz einfach! Ohne diese Quellen, ohne andere Webistes oder Weblogs die mich inspirieren, gäbe es hier nur einen Bruchteil der veröffentlichten Artikel. Mit anderen Worten: Ohne das Internet und die Bloggerszene im speziellen würde mein Weblog nicht in dieser Form existieren. Also verlinke ich sehr gerne andere Websites, die mir helfen meinen Weblog am Leben zu halten.
Im Artikel sind es meist Hyperlinks zu Unterseiten / Artikeln des Anderen, in den Meta-Daten sind es immer Hyperlinks zu der entsprechenden Hauptseite.
Habe ich schon erwähnt das ich für die gegenseitige Verlinkung im Internet und vor allem innerhalb der Bloggerszene bin? Bin ich!