wake-up-neo.com

Wie erstelle ich einen Shortcode, um bestimmte in einem Post-Meta-Array gespeicherte Werte zu drucken?

ich habe Probleme beim Drucken eines bestimmten Werts, der in einem Post-Meta-Array in einer WordPress-Schleife gespeichert ist, die von einem Visual Composer-Grid-Builder mithilfe eines Shortcodes erstellt wurde (ich habe auch das benutzerdefinierte Feld des Grid-Builders ausprobiert, konnte jedoch keine Beispiele finden). .

Ich habe versucht, diesen Shortcode in functions.php einzufügen:

function dmc_prezzo()
{
$postid = get_the_ID(); // get id from post in loop
$meta_data = get_post_meta($postid,'listing_options'); // select array
return $meta_data['price:value'] . ' ' . $meta_data['price:original']; // extract keys
}
add_shortcode('dmcprezzo', 'dmc_prezzo');  //usage [dmcprezzo]

Ich habe dann den Shortcode in das Textfeld in der VC Grid-Vorlage eingefügt , aber es wird nichts ausgegeben!

Hier ist das Ziel-Post-Meta-Array, das mit dem DPM-Plugin aus einem Post extrahiert wurde:

    listing_options: s:349:"a:8:{s:5:"price";a:2:{s:5:"value";s:5:"17300";s:8:"original";s:5:"19800";}s:17:"custom_tax_inside";s:0:"";s:15:"custom_tax_page";s:0:"";s:8:"city_mpg";a:1:{s:5:"value";s:3:"5.7";}s:11:"highway_mpg";a:1:{s:5:"value";s:3:"4.6";}s:12:"custom_badge";s:7:"Venduta";s:5:"video";s:43:"https://www.youtube.com/watch?v=IBCOAumh6aI";s:10:"short_desc";s:0:"";}";

Ich kann sehen, dass die Variable, die das Array enthält, $listing_options heißt, aber ich weiß nicht, wie ich den Code richtig einstellen soll.

Die Werte, an denen ich interessiert bin, sind der Preis: Wert und Preis: Original am Anfang des Arrays gefunden:

s:349:"a:8:{s:5:"price";a:2:{s:5:"value";s:5:"17300";s:8:"original";s:5:"19800";}

Kann jemand bitte helfen?

Dies ist die Ausgabe Ihres Arrays, wenn unserialisiert:

Array
(
    [0] => Array
        (
            [price] => Array
                (
                    [value] => 17300
                    [original] => 19800
                )

            [custom_tax_inside] => 
            [custom_tax_page] => 
            [city_mpg] => Array
                (
                    [value] => 5.7
                )

            [highway_mpg] => Array
                (
                    [value] => 4.6
                )

            [custom_badge] => Venduta
            [video] => https://www.youtube.com/watch?v=IBCOAumh6aI
            [short_desc] => 
        )

)

Um auf den Preis zuzugreifen, müssen Sie Ihren Shortcode folgendermaßen ändern:

function dmc_prezzo() {
    $postid = get_the_ID(); // get id from post in loop
    $meta_data = get_post_meta($postid,'listing_options'); // select array
    return $meta_data['listing_options']['price']['value'] . ' ' . $meta_data['listing_options']['price']['original']; // extract keys
}
add_shortcode('dmcprezzo', 'dmc_prezzo');  //usage [dmcprezzo]

Es ist besser, wenn Sie die gesamten serialisierten Daten gepostet haben. Ich bin nicht sicher, ob sie nicht verschachtelt sind.

0
Jack Johansson