Hook return in Variable speicher functions.php

  • Hallo zusammen,

    kann mir bitte jemand folgendes erklären:
    in der functions.php Datei kann ich mit der folgender Codeschnipsel wert einer Benutzerdefinierter Feld erfolgreich abfragen:

    PHP
    function my_custum_field() { 
    global $wp_query; 
    $postid = $wp_query->post->ID; 
    echo get_post_meta($postid, 'imgright', true); 
    }

    nun paar zeilen drunter möchte ich der Wert 'imgright' Variable in eiener weiteren Function Benutzen, wie kriege ich das hin?

    Mit der global variable habe ich leider kein erfolg (:

    PHP
    global $imgright = get_post_meta($postid, 'imgright', true);

    Kann mir jemand Helfen?

    Vielen Dank im voraus

    • 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

  • Was genau hast du vor?

    Denn du könntest den einfachen Weg nehmen und in der anderen Funktion einfach:

    PHP
    $imgright = get_post_meta($postid, 'imgright', true);

    nehmen.

    Das sollte funktionieren solange das Custom Field 'imgright' auch nen wert enthält.

    mfg

  • Meathor danke für Dein schnelle Anwort!

    Twentytwelve Theme hat in der functions.php Datei eine if Abfrage für body class in twentytwelve_body_class function, dorthin möchte ich eine bedinnung hinzufügen anhand Wert des Benutzerdefinierter Feldes:

    habe ich Dein Umsetzungsvorschlag richtig interpritiert?

    BG
    Max

  • Du brauchst da noch die $post_id Variable zb:

    PHP
    global $wp_query;
    $postid = $wp_query->post->ID;
    $imgright = get_post_meta($postid, 'imgright', true);

    mfg

  • Danke Meathor, meinst Du wahrscheinlich $imgright Variable, da die $postid Variable wird bereits definiert. Ich komme trotzdem nicht weiter.

    PHP
    function my_custum_field() { 
            global $wp_query; 
            $postid = $wp_query->post->ID; 
            $my_imgright = get_post_meta($postid, 'imgright', true); 
            echo $my_imgright; // Inhalt wird ausgegeben :)
    }
    
    
    echo $my_imgright; // Keine Inhalt :(

    global $my_imgright; definition habe ich auch probiert.

    Vielleicht noch eine idee? :confused:
    BG

  • Zu dem Zeitpunkt in der Sie gebraucht wird ist die Post ID noch nicht vorhanden in der Funktion:

    PHP
    function twentytwelve_body_class( $classes ) {
        $background_color = get_background_color();
        $background_image = get_background_image();
        
        $imgright = get_post_meta($postid, 'imgright', true);
        echo $imgright; // KEINEN ERFOLG :(
    ....

    Daher müsste diese erst ermittelt werden oder über die globale $post_id hinzugefügt werden:

    Bsp:

    PHP
    function twentytwelve_body_class( $classes ) {
        $background_color = get_background_color();
        $background_image = get_background_image();
        
        global $wp_query; 
        $postid = $wp_query->post->ID; 
        $my_imgright = get_post_meta($postid, 'imgright', true); 
    .....

    Jede Variable die Ausserhalb einer Funktion stehen sind, anders als in Javascript, innerhalb dieser nicht ansprechbar und muss der Funktion entweder per Parameter übergeben oder per Globale rein geholt werden.
    Variablen die innerhalb einer Funktion definiert werden sind auch nur innerhalb dieser gültig.

    Wenn du deinen letzten Code verwenden möchtest reicht diese Abwandlung:

    PHP
    function my_custum_field() { 
            global $wp_query; 
            $postid = $wp_query->post->ID; 
            $my_imgright = get_post_meta($postid, 'imgright', true); 
            echo $my_imgright; // Inhalt wird ausgegeben :)
    }
    
    
    my_custum_field();

    Da du in der Funktion schon eine Ausgabe hast brauchst du diese nur noch aufzurufen.

    mfg

    Einmal editiert, zuletzt von Meathor (26. Juni 2014 um 08:18)

Jetzt mitmachen!

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