Wordpress Custom Fields sind wirklich fantastisch! Hat man mit ihnen doch eine ganze andere Möglichkeit Projekte umzusetzen. Es verleiht dem ganzen die nötige Flexibiltät die man sich wünscht. Werte die in den Custom Fields gespeichert werden kann man nahezu überall ohne größere Probleme ausgeben lassen. Wie das ganze funktoniert will ich anhand meines Portfolio Bereichs näher erläutern. Dieser wird komplett mit Custom Fields umgesetzt, das eigentliche Eingabefeld bleibt leer.
Das sind einfache Eingabefelder die man einer Seite oder einem Artikel anhängen kann. Quasi Metainformationen zum Artikel. Das Prinzip ist denkbar einfach. Es gibt einen Schlüssel und diesem wird ein Wert zugewiesen. Ein einfaches Beispiel wäre dann also: Kunde > Kundenname. Der Schlüssel Kunde bekommt den Wert Kundenname. Zu finden ist das ganze unter dem normalen Eingabefeld und heisst entweder "Custom Fields" oder "Benutzerdefinierte Felder".
...sollte man sich Gedanken über den Aufbau machen damit man nicht wie ich zehn mal neu anfängt bzw. im Nachhinein dann viel ändern muss. Welche Werte möchte man später ausgeben lassen? Macht es Sinn das ein oder andere zusammenzufassen oder doch lieber für jedes ein einzelnes Custom Field anlegen. Bei mir war das speziell der Fall bei: "Umfang"... Sollte ich jetzt für jede Art der Arbeit ein eigenes Custom Field anlegen oder reicht es wenn ich das unter einem zusammenfasse? Mehr Möglichkeiten bieten sich auf jedenfall wenn man es einzeln macht. Hier muss man wie schon angesprochen einfach schauen was für einen die bessere Lösung ist.
Schauen wir uns erst einmal an wie das ganze ausgegeben wird. Ich nehm hier das Beispiel wie ich es in meinem Portfolio verwendet habe. Ich lege mittels Custom Field den Ordner fest worum es sich handel (Web, Print, Apparel) und dann lege iich noch den Bildnamen fest. Mehr nicht, der Rest wird im Loop gemacht.
<!-- Wordpress Loop -->
<?php if (have_posts()): ?>
<?php while (have_posts()) : the_post(); ?>;
<!-- Hier kommt der Inhalt hin -->
<!-- Den Inhalt der Felder speichern wir in Variablen -->
<?php $ordner = get_post_meta(&post->ID, 'ordner', true); ?>
<?php $img01 = get_post_meta(&post->ID, 'img01', true); ?>
<!-- $ordner und $img01 sind die Variablennamen in diesen der Inhalt
gespeichert wird. das 'ordner' und 'img01' sind die Custom Field Namen
die wir später im Beitrag mit Inhalt füllen werden im nächsten Schritt
Fragen wir ab ob der Inhalt des NICHT Leer ist und wenn das der Fall ist
dann soll er etwas ausgeben -->;
<?php if($img01 !== '') { ?>
<p class="bild"><img src)"<?php bloginfo('home'); ?>/
wp-content/uploads/portfolio/<?php $ordner; ?>/<?php echo $img01; ?>.jpg"
alt="<?php the_title(); ?>" /></p>
<?php } ?>
<!-- Jetzt wird, falls das Custom Field "img01" ausgefüllt ist,
ein Bild angezeigt. Das Custom Field "ordner" sollte natürlich
auch richtig ausgefüllt sein damit der Pfad zum Bild später stimmt.
Jetzt muss nur noch der Loop geschlossen werden und das ganze ist fertig.
Natürlich kann man das ganze noch mit anderen Sachen ergänzen
aber da soll hier nicht näher drauf eingegangen werden. -->;
<?php endwhile; else: ?>
<p>Falls keine Artikel vorhanden...</p>
<?php endif; ?>
Custom Fields werden ganz einfach hinzugefügt. Das funktioniert bei Artikeln und auch bei Seiten. Man scrollt einfach wenn man einen Beitrag schreibt nach unten zur Box "Custom Fields" oder wer die deutsche Version hat: "Benutzerdefinierte Felder". Dort schreibt man bei Name einfach den gewünschen Feldname rein. Sollte man schon mal einen Beitrag verfasst haben und Custom Fields genutzt haben kann man hier auch per Drop Down Namen auswählen. Wenn man sich für einen Namen entschieden hat bekommt dieser einen Wert. In unserem Beispiel ist das "img01" als Name und "Bildname" der Wert. Ist alles richtig klickt man auf hinzufügen und das Custom Field wurde gespeichert. Man kann so viele anlegen wie man möchte bzw. so viele wie man benötigt. Man sollte sich vorher gedanken machen was wirklich gebraucht wird.
Ein vorhandenes Custom Field kann natürlich auch bearbeitet werden. Dazu geht ihr einfach in den Beitrag wo etwas bearbeitet werden soll und scrollt wieder zur Box mit den Custom Fields. Dort seht ihr dann die schon gespeicherten und könnt diese einfach ändern und klickt anschließend auf aktualisieren.
Ich nutze das Plugin "More-Fields" was mir die Arbeit deutlich vereinfacht. Es soll hier keine Beschreibung des Plugins werden. Soviel sei aber gesagt. Man kann damit schön Sets erstellen für Custom Fields welche man dann beim schreiben einfach mit ausfüllen kann. Problem gibt es hier nur mit den Wordpress Post Revisions die abgeschaltet werden müssen sonst schreibt er bei jedem Speichern die Custom Fields doppelt. Das ganze macht man einfach indem man eine kleine Zeile in die config.php schreibt:
define('WP_POST_REVISIONS', False);
Sollte es Fragen geben dann fleißig in den Kommentaren posten.
(#1) tobi
Am 6. Januar 2009 um 11:03 Uhr
hey, super funktionserklärung!
Hab auch schon ein Projekt in der Schublade wo die custom-fields n super Ding für sind! Bislang habe ich immer gekonnt die custom-fields weggescrollt :-D
tobi
(#2) David Hellmann
Am 6. Januar 2009 um 11:10 Uhr
Ja ich hab auch immer versucht die Box mit den Custom Fields zu übersehen aber das hat sich nun glücklicherweise geändert!! :)
(#3) tsujiGIRI
Am 6. Januar 2009 um 11:19 Uhr
jeb, custom-fields sind sehr nützlich. Die Benutzung in Textpattern sieht aber, wenn ich mir das hier so ansehe, viel praktischer aus.
(#4) David Hellmann
Am 6. Januar 2009 um 12:04 Uhr
Dazu kann ich nicht viel sagen da ich Textpattern noch nicht verwendet habe.
(#5) Markus
Am 6. Januar 2009 um 13:36 Uhr
danke david :)
bin noch neu bei wordpress. hat mir wirklich geholfen. thx
(#6) ToM
Am 6. Januar 2009 um 14:56 Uhr
Hi David,
danke für dein rasches Reagieren auf meine “private” Anfrage.
Ich bin noch am Layout planen für meine zukünftige Site.
ToM
(#7) David Hellmann
Am 6. Januar 2009 um 15:21 Uhr
Ach der Beitrag gammelte schon lang durch backend :) Ich musste nur noch ein paar Sachen dazu schreiben und das hab ich heute endlich mal geschafft, hehe. Wenn er dir hilft – umso besser!
(#8) Patric Comin
Am 6. Januar 2009 um 21:03 Uhr
Auch von meiner Seite aus ein großes Danke. Bisher habe ich nicht viel damit gemacht, aber spätestens jetzt ist die Zeit reif für ein Theme mit Custom Fields.
(#9) Olaf
Am 12. Mai 2009 um 14:36 Uhr
Ich sage artig danke schön. wäre doch gelacht, wenn ich das nicht hinbekomme… ;-)
(#10) Robert
Am 16. Mai 2009 um 01:28 Uhr
Klasse Artikel!
Bin noch ein wenig unerfahren mit Wordpress und hab mich schon gefragt, was es mit diesen “Spezialfeldern” auf sich hat.
(#11) Oekoblogger
Am 19. Mai 2009 um 20:47 Uhr
Danke David für deinen Beitrag, ich hab mich ewig gefragt was ich mit den costum-felder anfangen soll. Nicht, dass mir jetzt eine Idee gekommen ist aber zumindest weiß ich nun wie sie funktionieren :D Vielleicht habe ich ja demnächst eine Verwendung dafür.
(#12) David Hellmann
Am 19. Mai 2009 um 20:50 Uhr
Das hab ich mich anfangs auch immer gefragt wenn ich ehrlich bin :) Aber man kann schon tolle Sachen damit machen. Das ganze Portfolio und alles was damit zusammenhängt ist zum Beispiel über Custom Fields gemacht.
(#13) Евгений
Am 27. Mai 2009 um 07:48 Uhr
Занятно было почитать :) Попробуем-с тоже ответить в ближайших постах.
(#14) Katch
Am 27. Mai 2009 um 09:50 Uhr
Danke auch von mir :-)
(#15) David Hellmann
Am 30. Mai 2009 um 19:22 Uhr
gerne doch!
(#16) Camdy
Am 9. Juni 2009 um 00:49 Uhr
Hallo,
ist es auch möglich diese Spezialfelder als meta-description, bzw. meta-Keywords zu nutzen?
Ich würde mir gerne ein SEO-Plugin sparen. Wenn ja, wie mache ich das dann?
Vielen Dank im Voraus!
(#17) David Hellmann
Am 9. Juni 2009 um 00:53 Uhr
Du willst in ein Custom Field die Keywords für den Beitrag schreiben? Hm ob es geht weiss ich nicht aber ich denke sollte schon irgendwie möglich sein. Aber versprechen kann ich es nicht :)
(#18) Camdy
Am 9. Juni 2009 um 02:24 Uhr
Hi David,
ja und habe gesehen, dass bei den Costum Fields ‘Titel’, Description’ und ‘Keywords’ schon vorgegeben sind. Habe sie mal ausgefüllt, nur abspeichern ließ sich das nicht.
Weiß leider auch nicht, kann höchstens ein php-code irgendwo ins Template einfügen, wie ich das ändern kann, bzw. dass er das auch abspeichert.
Möglich wäre ja auch eine vergleichbare Lösung, hauptsache kein SEO-Plugin und da die Spezialfelder schon einmal da sind … :-).
Wenn es klappt, wäre es super toll, wenn nicht, dann muss ich wohl doch noch php lernen *g*.
Danke und viele Grüße
(#19) БaйaчaБeбe
Am 22. Juni 2009 um 01:19 Uhr
На Ваш сайт знакомый в аську ссылку кинул. Оказалось ,что не зря :) Понравилось. Тепрь постоянно читать буду :)