WordPress benutzerdefinerte Felder (Custom Fields)

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. Micha sagt:

    Hey Frank,
    sehr schöner Artikel!
    Ich liebe ebenfalls diese custom fields. Es ist unglaublich, was man damit anstellen kann. Die Sortierung der Baudenkmale nach Epoche ist auch mit custom fields und wp_list_pages gelöst.

  2. Micha sagt:

    Der Link in dem Kommentar ist etwas schlecht zu sehen 😉
    Liebe Grüße
    Micha

  3. Jared sagt:

    sehr coole idee die benutzerdefinierten felder zu verwenden! hab die idee das erste mal bei micha gefunden und muss sagen WordPress ist mächtiger als man zuerst denkt.

    kann man so eigentlich auch ein eigenes (etwas grösseres) plugin schreiben? also was sich auf benutzerdefnierte felder bezieht? wenn ja, dann wäre da eventuell die möglichkeit gegeben zu taggen

  4. @Micha: Ich denke, ein Beitrag darüber wäre toll.

    @Jared: Jeromeys Keywords war so aufgebaut, es wurden die Felder zum Taggen genutzt. Ist seit WP 2.3 aber nicht mehr notwendig und dementsprechend auch schneller in der DB.

  5. Micha sagt:

    @Frank, gute Idee 🙂 Werd ich in den nächsten Tagen machen!

  6. Jakob sagt:

    Ich stimme ein, mit Custom Fields kann man so wahnsinnig viel machen, das wird dem Customizing geradezu gerecht.

    Ich habe mit einem Freund zusammen eine Website erstellt, die zu einem immens großen Teil auf den Custom Fields beruht (detaillierter zu sehen z.B. hier und besonders hier). In den letzten beiden Beispielen sind so gut wie alle Felder auf Custom Fields aufgebaut. Teilweise rufen wir die Values auch über arrays ab, was Such- und Sortierfunktionen helfen kann.

    Sehr hilfreich sind übrigens folgende Plugins: Get Gustom Field Values und Custom Field GUI

  7. bigh sagt:

    Super Beitrag. Hat mir viel Zeit erspart! Danke!

  8. Michaela sagt:

    Hallo Frank,

    ich nutze das Plugin "Custom Field Images", es funktioniert auch wunderbar. Leider erscheint der Text dann unterhalb des Bildes anstatt daneben.

    Seit WordPress 2.6 kann ich auch manuell eingefügte Bilder nicht mehr bearbeiten… bei rechtem Mouseklick und “edit” öffnet sich in allen Blogs die 404 Seite.

    Auch kann ich bei diesen manuell eingefügten Bildern in den Posts den Text nicht mehr neben den Bildern einfügen, er erscheint auch hier immer unter den Bildern. Vor WordPress 2.6 klappte alles einwandfrei. Hast Du einen Tipp?

    Danke Michaela

  9. @Michaela: Sorry nein, kann allerdings deinen Angaben auch nicht folgen. Weis also nicht, was und wie dein Problem aussieht. Kenne aber das Plugin auch nicht, so dass ich es nicht nachvollziehen kann.

  10. Mark Henckel sagt:

    Sehr gut. Vielen Dank! Sehr Gute Arbeit!

  11. Ja, die Custom Fields sind schon eine nette Sache. Wir nutzen diese auch für diverse Zusatzfeatures auf unserem Magazin.

  12. Aneas sagt:

    image_des_beitrags

    Der Beitrag geht irgendwie an mir vorbei... Ich kapier den einfach nicht.
    Ichhabe eine Möglichkeit gesucht, wie ich in der Übersicht der Artikel im Blog ein thumbnail einsetzten kann. Ao dass man neben der Einleitung auch etwas visuelles hat ...

    Aber das scheint dann hier nicht der richtige Beitrag zu sein ... Was kann man denn nun mit dem machen was du hier vorstellst ??

    • @Aneas: ich habe einen Beitrag in Arbeit, der genau das erklärt, da WordPress aus meiner Sicht bessere Lösungen dafür bereit hält, als die Custom Fields, kommt hoffentlich in den nächsten Tagen.

  13. Wer komfortabel mit benutzerdefinierten Feldern arbeiten möchte (eindeutige Beschreibung und z.B. Uploadfunktion mit Verknüpfung zu Custom Fields) und Plugins gegenüber nicht negativ eingestellt ist, der kann sich das WordPress Plugin Flutter einmal ansehen: http://flutter.freshout.us

    Ich hatte dazu auch mal ein Demovideo sowie deutsche Übersetzung erstellt: http://great-solution.de/wordpress/screencast-wordpress-flutter-alias-fresh-page/

    Fairerweise sei gesagt: Das Ding KANN bei intensiver Nutzung Performance fressen!

  14. Aneas sagt:

    Nee, das ist keine Alternative... Es werden zu viele Tabellen in der DB angelegt (mehr als WP selbst braucht) und dann funktioniert das ganze nicht einmal ohne Probleme. Die Supportseite ist offline und das Ticketsystem gibt keine Lösungen und redet nur um den heissen Brei. Ausserdem kann man ohne das Plugin die Daten nicht benutzen ... da frage ich mich, ob ein solches Plugin Sinn macht. Nein, meiner Meinung nicht!

  15. apaju sagt:

    Super Lösung! Vielen Dank! Ein Problem das ich jetzt nur habe ist das wenn ich mein benutzerdefiniertes Feld nicht in jedem Beitrag verwenden möchte, habe ich den leeren image tag im Code mit drin. Da muss ich mir wahrscheinlich noch ne andere Vorlage für anlegen, oder gibt es eine Möglichkeit nur den kompletten IMG Code auszugeben wenn ich mein benutzerdefiniertes Feld nutze? Grüße

  16. apaju sagt:

    Hm, das entzieht sich meinen programmiertechnischen Kenntnissen (=0). Ich glaube ich werde mir erstmal ein zweites Template anlegen. Hast mir aber schon sehr weitergeholfen! Danke!

  17. René sagt:

    Hallo, ich nutze solch ein Feld, um die Quelle eines Artikels anzugeben, ich muss also nur die URL hinterlegen, und dann erscheint unter dem Post ein Quelle-Link.

    Ich kann es bisher leider nicht 100%ig nachvollziehen, aber sendet es von dieser Art Link auch einen Pingback und wenn nicht, wie bekomme ich das hin?

    • @René: nein, ein Ping wird nur von URLs aus dem Content oder den extra Feld trackbacks getriggert, kann ich auch nicht sagen, ob das geht. Eventuell gibt es einen hook, der die beiden Felder einhängt und du müsstest dein Feld ergänzen.

  18. René sagt:

    Hallo, kurze Frage. Ich möchte Artikel nach PLZ sortieren. Im Loop sollte demzufolge eine variable eingetragen werden der nur die ersten beiden Ziffern einer PLZ. Mein Benutzerdef. Feld heißt in diesem Fall "plz" und beinhaltet immer die vollständige Nummer.

    Mein Loop sieht so aus:

    $temp = $wp_query;
    $wp_query= null;
    $wp_query = new WP_Query();
    $wp_query->query('cat=72&showposts=10&orderby=modified'.'&paged='.$paged);

    Was muss ich hinzufügen das WordPress mir zum Beispiel nur den PLZ-Bereich "01" ausgiebt?

    Vielen herzlichen Dank
    René

  19. René sagt:

    Sehr schön. Besten Dank 🙂

  20. Robert Reinke sagt:

    Guter Artikel, aber ich suche eine Lösung, dafür, dass bestimmte Benutzerdefineirte Felder automatisch in jeden neuen Artikel eingefügt werden.

    Also ich drücke auf neuen Artikel erstellen und automatisch sind standardisierte Vorgaben als benutzerdefineirte Felder vorhanden.

    Habe mit meinen Suchbegriffen nichts gefunden.

    Evtl. hat ja hier jemand ne Idee.

    Danke vorab.

    RR

  21. Jordi sagt:

    Danke für die Tipps. Ich fange gerade erst man mit WordPress zu arbeiten. Jetzt versteh ich ein bisschen mehr, wofür diese Custom Fields da sind, bzw. was man alles damit machen kann 🙂

  22. LarsFischer sagt:

    Vielen Dank. Schön erklärt...

  23. ärdbaer sagt:

    Hallo,
    ich bin durch Google (mal wieder) auf deine Seite gestoßen und habe eine Frage.

    Momentan suche ich ein Widget für meine Sidebar, bei der ich die ID eines Artikels eingebe und somit dann automatisch bestimmte Custom Fields ausgelesen werden.
    Ist dir eventuell dafür auch eine Lösung bekannt?

    Kurz gesagt: Ich gebe in dem Widget eine Artikel ID ein und im Folgenden werden dann in der Sidebar die Custom Field-Werte ausgelesen und dargestellt.

    Über einen Tipp würde ich mich sehr freuen.

    Liebe Grüße,
    Björn

  24. ärdbaer sagt:

    Schade, aber hätte ja sein können. 🙂
    Danke trotzdem für deine Antwort.

    Habe mir nun ein Widget mit einigen Eingabefeldern erstellt. Ist nicht ganz so komfortabel, aber tut es auch. Und für mein erstes Widget funktioniert es sogar recht gut. 🙂

  25. SKID sagt:

    Hi! Erstmal vielen Dank für die vielen tollen Artikel und diesen extrem hilfreichen Blog, habe schon einige Male hier Hilfe gefunden.

    Nun habe ich allerdings dasselbe Problem wie in #31 von René beschrieben, auch ich benutze die Custom Fields für Quellenangaben und Pingbacks funktionieren hier nicht. Wäre nicht so schlimm, denn man kann ja theoretisch auch einfach den Trackback Link manuell eingeben, bloß habe ich das nun einmal so versucht und der Trackback ist nicht von der Quellenseite angenommen worden. Ich vermute stark dass es im Spamfilter hängen geblieben ist, denn mit Pingbacks zum selben Blog hat es vorher nie Probleme gegeben.

    Gibt es vielleicht mittlerweile neue Erkenntnisse hierzu? Ich konnte leider bisher nichts brauchbares in der Richtung finden.

    Viele Grüße,
    Markus aka DAS_STROMKOPF.

  26. Christoph sagt:

    Hi,

    die Artikelreihe zu den plugins gefällt mir sehr gut. Vor allem sind die einzelnen Teile sehr gut erklärt.

    Ich habe nun ein konkretes Anwendungsbeispiel, bei dem die Custom Fields, die Schlagwörter und die Kategorien beim erstellen gefüllt werden sollen.

    Grundlage soll bei jedem Publizieren, oder Aktualisieren die Abfrage sein, ob ein Artikelbild vorhanden ist.

    Aus diesem Artikelbild sollen dann mit der Funktion iptcparse() die Felder mit Werten wie Beschreibung, Schlagworten etc. gefüllt werden.

    Wie schreibe ich in diese Felder, denn im Artikel wurde vor allem vom Auslesen gesprochen, oder?

    Würde mich über Tipps und ggf eine Anleitung freuen.

    (Nutze WP 3.01, fülle die IPTC-Felder vor dem Upload.)

    Gruß Christoph

    • @Christoph: du willst custom Fields zum Beitrag/Seite schreiben, habe ich richtig verstanden? dann schaue mal in diesem Beitrag, dort mache ich das, handelt sich immer um postmeta-Daten. Es wird der Hook wp_insert_post angesprochen und dabei werden die Daten gespeichert.

  27. McNet sagt:

    Hallo! Folgende Frage habe ich zu dem Thema: Kann man "Custom Fields" auch in folgender Art verwenden: Ich möchte gerne Autoren (oder vielmehr jedem Besucher der Website nach vorherigem Login) die Möglichkeit bieten, einen Artikel zu posten. Dieser Artikel soll jedoch in einer "strukturierten" Form eingegeben werden. WP hat ja standardmäßig nur ein Titel- und Text-Feld. Ich bräuchte jedoch verschiedene Felder (ähnlich wie bei einem Formular, allerdings eben nicht als Formular mit E-Mail-Versand gedacht, sondern als "Eingabemaske" für Artikel. Diese Eingabemaske solle jedoch nur für eine bestimmte Art von Artikeln gelten, andere Artikel oder Seiten sollten wieder im WP-Standard anlegbar werden. Geht dies mit den "Custom Fields"? Kann man Autoren bzw. Autoren-Gruppen bestimmte Eingabemasken vorgeben?

  28. Christoph sagt:

    Hallo Frank,

    Danke für den Tipp, werde mal sehen, ob ich das Plugin für meinen Zweck anpassen kann.

    Gruß Christoph

  29. Chris sagt:

    Hallo,
    ich habe innerhalb meines WP Themes bereits mehrfach die Ausgabe von Custom Fiels hinbekommen - ist ja nicht wirklich schwer. Nun ist es mittlerweile so, dass ich einen Wert in jedem Artikel festlege, diese ausgeben will, allerdings außerhalb von meinem WordPress.

    Mit dieser Zeile gehts natürlich nicht (ID, 'CUSTOMFIELDBEZEICHNUNG', true); ?>)

    Wie gehts nun richtig?

  30. Chris sagt:

    Danke dir. Hat nun geklappt.

  31. Christof sagt:

    Hallo Frank, ich habe eine Mail an dich gesendet,
    aber die Kopie dieser Mail die mich erreicht hat war leer.
    Kannst du mir kurz antworten damit ich weiß ob dich die Anfrage erreicht hat?
    Schöne Grüße

  32. Tamara sagt:

    Vielen liben Dank für die genauen Codes und Anleitungen. Habe ewig danach gesucht, denn ich bin an gleicher Stelle verzweifelt. Aber jetzt weiß ich mehr! Tamara

  33. mr. choc sagt:

    Merci für den tollen Weblog,
    erst wollte ich mit dem Plugin Exec-PHP in ein paar pages arbeiten. Nun nutz ich die custom fields - dann kann man die Beiträge auch noch WordPress-like editieren (beim Benutzen von Exec-PHP muss man tinymce ja 'beschneiden'). Beste Grüße aus Hamburg

  34. Tilo sagt:

    Danke für den Tipp. Habe deinen Schnipsel so umgebaut, dass er für mich passt. Habe mir schön einen Funktion in meine functions.php geschrieben, die automatisch einen Downloadlink anzeigt, sobald ein benutzerdefiniertes Feld einen Wert enthält.

    Ich löse die Abfrage so: if ( !$downloadtext == "" ) {} Ich weiß, viele Wegen führen nach Rom, aber es gibt bestimmt noch einen besseren. Was meinst du?

  35. Lars sagt:

    Hallo Frank,
    habe schon viele deiner Tipps umsetzen können, danke dafür an dieser Stelle sehr herzlich.

    Nun werkele ich an Custom Fields rum und komm trotz diverser Suchen nicht weiter. Für ein Kundenprojekt sollen die benutzerdefinierten Felder als wiederkehrende Beschreibungs-Eckdaten für deren Angebote dienen (vergleichbar mit Immobilienexposés), gefüllt mit Daten wie Anlagentyp, Fertigstellung, Pachtkosten, Kaufpreis, etc.
    Jetzt hat aber nicht jedes Feld in jedem Beitrag Inhalt und manchmal kommen individuelle Felder hinzu, die sonst noch nie aufgetaucht sind.

    Wie bekomme ich es hin, dass sowohl im Backend (für den ausfüllenden User) als auch im Frontend die Felder immer in der gleichen Reihenfolge angezeigt werden, wie beim Erstellen des Posts im Backend ausgewählt?

    Meine Idee war eine mögliche Sortierung durch die ID des Meta-Value Feldes, aber einen Code dafür hab ich nicht finden oder selbst schreiben können.

    Hast du einen Tipp hierfür?

    P.S. Mit Plugins wie More Fields oder Custom Field Suite hab ich auch nicht genau das erreichen können.

  36. Lars sagt:

    Hallo Frank, danke für die schnelle Antwort.

    Ich glaube allerdings, dass dort nicht das zu finden ist, was ich suche. Nicht das Filtern von Posts über die Custom Fields, sondern die Steuerung der Ausgabe-Reihenfolge der Custom Fields selbst innerhalb eines Posts.

    So was wie mein Versuch eines Eigenbaus:
    get_post_custom_keys('orderby=meta_id')
    was aber leider nicht geht, bzw. keinerlei Effekt zeigt. Gibt's sowas in der Art?

    In der Datenbank sind die Einträge in der richtigen Reihenfolge gespeichert (mit aufsteigender meta_id) und im Backend werden sie über More Fields auch in der richtigen Reihenfolge angezeigt. Nur im Frontend sortiert er wahhlos um, keine erkennbare Sortierung, weder alphanumerisch, noch nach Value, etc.

    P.S. Projekt läuft unter WordPress 3.2.1

  37. Lars sagt:

    Hallo Frank, ich habe es (mit meinem Fähigkeitenstand) nicht hinbekommen, eine Lösung über die Infos aus der WP_Query zu generieren. Da fehlt mir komplett der Ansatz.

    Ich habe nun eine Pseudolösung für das Frontend über eine SQL-Selektabfrage folgendermaßen hinbekommen:

    $postid = get_the_ID();
    $metaforprojects = $wpdb->get_results("
    SELECT *
    FROM $wpdb->postmeta
    WHERE post_id = $postid
    ORDER BY meta_id
    ");

    echo "\n";
    foreach ( $metaforprojects as $metaforproject)
    {
    $keyt = trim($metaforproject->meta_key);
    if ( '_' == $keyt{0} )
    continue;
    echo '';
    echo $metaforproject->meta_key;
    echo '';
    echo $metaforproject->meta_value;
    echo '';

    }
    echo "\n";

    Somit bekomme ich im Frontend die Reihenfolge der Customfields nach ID (=Reihenfolge ihrer Eingabe) korrekt angezeigt.

    Bleiben weiterhin leider zwei Probleme:
    1. Im Backend sortiert WP die benutzerdefinierten Felder (ohne Nutzung eines Custom Field Plugins) alphabetisch nach KEY, nicht nach deren ursprünglicher Eingabereihenfolge.
    2. Wenn man nachträglich Felder hinzufügt, werden diese im Frontend als unterstes angezeigt und im Backend alphabetisch zwischensortiert.
    Beides sehr unschön und für den Autor im Backend äußerst unübersichtlich.

    Ich hatte noch Ideen, ggf. den post_meta table um ein Feld erweitern, welches eine Sortierreihenfolge speichert, die sowohl im Frontend, als auch im Backend die Anzeigenreihenfolge steuert.

    Aber dafür ist mein Latein wohl am Ende - falls WP überhaupt solche Möglichkeiten bietet.
    Danke trotzdem.

    • @Lars: der Query kann aber sortieren, nach verschiedenen Aspekten, z.b. orderby=meta_value nach dem Wert des benutzerdef. Feldes. Folgender Query query_posts($query_string . '&meta_key=size&orderby=meta_value'); liest alle Werte zum benutzerdef. Feld size aus und sortiert nach dem Wert zu diesem Feld.

  38. Rico sagt:

    Hallo, ich habe seit ein paar Tagen das Problem, dass in meinen automatischen Posts per RSS die benutzerdefinierten Felder für Thumbnail bspw. nicht mehr angelegt werden und somit in der index.php im Template (Übersicht der Seite) ich kein Thumbnail mehr anzeigen kann.

    Ich kann prüfen, ob ein Plugin dafür zuständig ist, dass ich in den letzten 3 Tagen installiert habe. Weiß jemand auf Anhieb wie das passieren kann. An dem Plugin, welches die Posts anlegt sowie an der functions.php wurde nichts geändert.

Trackbacks

  1. benutzerdefinerte Felder bei WordPress...

    Frank Bueltge geht in einem aktuellem Beitrag auf die benutzerdefinerte Felder bei WordPress ein, und erklärt an einem Beispiel wie das Auslesen eines Wertes zu einem Schlüssel funktioniert und was bei den Loops zu beachten ist.
    ......

  2. [...] Bueltge zeigt in einem seiner Blog-Einträge, was man ohne Plugins alles mit den Benutzerdefinierten Feldern anstellen kann. Sprich welche [...]

  3. [...] benutzerdefinierte Felder (custom fields) in WordPress? Ganz einfach, ich wurde von Frank Bueltge dazu gezwungen !!! [...]

  4. [...] yigg_url='http://www.lionstarr.de/ein-bild-pro-post.html';Dank des einzigartigen Tutorials zur Abfrage von Custom Fields in WordPress von Bueltge gibt es auch in diesem Blog in Zukunft zu jedem Post ein Bild. Realisiert wurde das [...]

  5. [...] Um das ganze zu realisieren, habe ich im Plugin-Verzeichnis von WordPress eine php-Datei mit dem folgenden Inhalt erstellt. Dabei habe ich mich sehr stark an dem Beispiel von Frank Bueltge orientiert, welches er nutzt, um die EXIF-Daten seiner Bilder auszulesen. [...]

  6. [...] ist es seinem Blog zu verdanken, dass hier nun vor jedem Post ein Bild erscheint: Denn ohne sein Custom Fields-Tutorial wäre dies nicht möglich [...]

  7. [...] kann die Felder auch außerhalb des Loops anwenden. Im Buelte Blog gibt es da genau Infos. Am besten einfach mal ein bissel mit den benutzerdefinierten Feldern [...]

© 2016, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift