2016-05-15 17 views
1

Kann nicht wirklich den Dreh raus. Ich versuche, einen Wordpress-Shortcode zu erstellen, der Werte aus einem Array in einer anderen Datei abruft. Was ich versuche zu erreichen ist, dass der Shortcode 'myshortCode valueFromKey' abhängig vom Schlüssel funktioniert.Wordpress Shortcode Array unbenannt Attribut

Dies ist meine Short Funktion in functions.php

function someCode($opts) { 
    require_once(get_stylesheet_directory() . '/assets/php/array.php'); 
    return $array[$opts[0]]; 
}add_shortcode('myshortCode', 'someCode'); 

Und das ist das Array in array.php

$array = array(
    'key1' => 'a string respons...', 
    'key2' => '...from external API' 
); 

Aber egal, was ich tun kann ich nur den ersten Schlüsselwert aus dem Array. z.B.
'myshortCode Key1'
'myshortCode key2'
nur Rückkehr 'myshortCode Key1'

I planen, diese auf der Verwendung Respons Daten von einer externen API anzuzeigen. Alle diese Shortcodes befinden sich also in verschiedenen Abschnitten auf derselben Seite.

Antwort

1

Ich habe getestet nur den Code und es funktioniert auf meiner Seite fein

[myshortCode „key1“ „key2“] das ist, wie ich die Short

genannt, und das ist, was ich in meinem aufgenommen haben functions.php

Um die Datei nicht mehrmals aufzurufen, deklarieren Sie einfach das Array über der Funktion oder fügen Sie die Datei einmal oberhalb der Funktion ein.

require_once(get_stylesheet_directory() . '/array.php'); 

ODER

$array = array('key' => 'value'); 

dann innerhalb der Funktion schreiben nur global $ array; um auf die außerhalb der Funktion deklarierten Variablen zuzugreifen.

function someCode($opts) { 
    global $array; 

    return $array[$opts[1]]; 

} 
add_shortcode('myshortCode', 'someCode'); 

Stellen Sie sicher, <?php am Anfang Ihrer array.php Datei und stellen Sie sicher, dass der Pfad korrekt ist. Der ganze Rest sollte gut sein.

$opts 

ist ein Array von Ihren unbenannte Attributen, so dass Sie $ opts [0] wählen, $ setzt [1] und so weiter ..

+0

Dank für den Versuch, aber es funktioniert nicht. Alle Pfade sind korrekt und keine Tags (d. H. axelra82

+0

Also wenn du [myshortCode "verwenden willst key1 "] sollte dann" eine Zeichenkette respons ... "angezeigt werden und wenn Sie [myshortCode" key2 "] verwenden, erhalten Sie" ... from external API "return. (Sie werden $ opts [0]) verwenden Funktionalität funktioniert einwandfrei auf meiner Seite. –

+0

Sorry nur überprüft, und wenn der Shortcode zweimal verwendet wird dann brechen. Lassen Sie mich weiter überprüfen. –

Verwandte Themen