Get Custom Field Values auf Unterseiten anwenden?

  • Hallo,

    ich versuche mich gerade an einer Subnavigation, die ebenfalls noch ein Custom Field der jeweiligen Unterseite ausspuckt und komme hier leider nicht weiter. Hat da jemand evtl. ein Beispiel für mich, wie ich das realisieren kann? Die Subnavigation ist ja nicht das Problem, eher das ausspucken des Custom Fields der Unterseite. Kann das das c2c Plugin (get custom field values) überhaupt?

    Gruß, 73inches

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich denke, dafür brauchst Du das Plugin gar nicht. Soweit ich weiß vereinfacht es ja auch nur den Zugriff auf die Custom-Fields ein wenig, aber man kann das auch mit WP-Bordmitteln ganz gut bewerkstelligen.

    In meinem Theme greife ich auf die Felder z.B. so zu:

    PHP
    echo get_post_meta($id, 'mein-gewaehlter-feldname', true);



    Die Variable $id ist dabei die ID des Postings, in Deinem Fall müsstest Du da die ID der Unterseite reinreichen. Dann halt den Feldnamen und true, wenn Du nur einen Wert erwartest (bei false kommt ein Array zurück).

  • Bedenke, dass ich mich in meiner Sidebar außerhalb des Loops befinde. Sollte das dann auch funktionieren? Wenn ja, wie kann ich ihm das ganze in eine dynamische Navigation mitgeben?

  • Der Befehl müsste auch außerhalb des Loops funktionieren, Du kannst dann aber natürlich nicht einfach $id benutzen wie im Loop. Willst Du aber ja auch gar nicht, sondern Du willst ja ein Feld der Unterseite ausgeben. Dessen ID musst Du natürlich kennen. ;-)

    Wie Du das in Deine Navigation integrierst, kann ich Dir jetzt so ohne Infos dazu schlecht sagen. Entweder suchst Du Dir selber die richtige Stelle heraus oder Du postest mal den Code der Navigation, dann kann ich ja mal schauen.

  • Ich benutze folgende Navigation...

    PHP
    <?php
    if($post->post_parent)
    $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else
    $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
    if ($children) { ?>
    <ul>
    <?php echo $children; ?>
    </ul>
    <?php } ?>

    Einmal editiert, zuletzt von 73inches (5. Mai 2008 um 19:50)

  • Hm, da wirst Du die Funktion wp_list_pages oder Teile davon überschreiben müssen. Kannst Du etwas genauer sagen, was Du mit dem Custom Field machen möchtest? Einfach hinter dem Seitentitel ausgeben?

  • Hey,

    erstmal vielen Dank für deine Mühen bisher.

    Nein, ich möchte den Wert ggf. in einem Inline-CSS verwurschteln. Daher sollte der Output (ganz vergessen zu sagen) entsprechend frei bestimmbar sein.

  • Ok, ich poste Dir mal eine Lösung, wie ich sie benutzt habe. Da werden innerhalb der list_pages-Funktion auch custom fields ausgegeben. Achtung: Das habe ich für WP 2.3.3 geschrieben. Falls sich die Methoden in neueren WP-Versionen geändert haben, müssten sie theoretisch an diese Änderungen angepasst werden.

    Also, folgendes in die functions.php Deines Themes:

    Das ist die überschriebene Funktion wp_list_pages. Geändert wurde nur der Klassenaufruf unten von Walker_Page zu My_Walker_Page. In der sidebar.php ersetzt Du dann natürlich wp_list_pages() durch my_list_pages(). Argumente bleiben gleich. Und dann natürlich die neue Klasse, welche die alte Klasse erweitert (einfach darunter in die functions.php):

    In diesem Beispiel wird zu jeder Seite ein Custom Field mit einer Bild-URL ausgelesen (falls vorhanden) und statt des Textes verlinkt. Das müsstest Du jetzt nur zu Deinem gewünschten Output anpassen. Und wie gesagt, keine Garantie, dass es mit WP 2.5 noch so funktioniert. ;-)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!