wake-up-neo.com

PHP Code innerhalb von Kurzwahlen

Grundsätzlich habe ich diese Codezeile:

<?php echo do_shortcode('[O_U user_name="operator" 
blocked_message="This page is restricted for guests."] 
**Content Goes here** [/O_U]'); ?>

Jetzt verwende ich in Content Goes here reguläres HTML, um meinen Inhalt zu erstellen. Aber jetzt muss ich in diesem HTML etwas PHP hinzufügen.

Im Moment muss ich die Option für select Tag mit MySQL-Ergebnissen füllen.

Ich habe einen PHP-Code:

<?php
        $database_name = "rams";
        $mydb = new wpdb(DB_USER, DB_PASSWORD, $database_name, DB_Host);
        $mydb -> show_errors();

        //Populate languages
        $languages = $mydb -> get_results(
            'SELECT * FROM language_skills'
        );

        foreach ($languages as $language){
           //do some echo of html
        }
?>

Wie kann ich hier ein Ergebnis erzielen? Ich jetzt, Echo wartet dort auf eine Zeichenfolge. Ich habe über Heredoc und eine benutzerdefinierte Funktion nachgedacht, aber ich scheine das Ergebnis nicht zu erreichen.

UPDATE:

Ich habe es geschafft, meine Daten zu bekommen. Es ist in einer Reihe. Wie kann ich in der obigen Situation alle Array-Ergebnisse anzeigen?

Mein Array sieht ungefähr so ​​aus:

<option value="$value">$content</option>

Es zeigt genau, was ich will, wenn ich es benutze:

[shortcode].$array[index].[/shortcode]

Wie kann ich alle Indizes hinzufügen? Ich habe es für jeden versucht, aber zwischen den Kurzwahlen funktioniert es nicht

ANTWORTEN:

Ich habe implode verwendet, um das Array in einen String zu ändern, und der Code funktioniert nun wie gewünscht.

1
theo

Sie können keine PHP Funktionen in Ihren Shortcode einfügen.

Das müssen Sie jedoch nicht. Sie können einfach Ihre foreach-Schleife verwenden, um den HTML-Code zu erstellen und in einer Variablen zu speichern, zum Beispiel $shortcodehtml.

Danach können Sie anrufen

echo do_shortcode('[O_U user_name="operator" blocked_message="This page is restricted for guests."]' . $shortcodehtml . '[/O_U]');

Die bessere Version davon wäre, wenn Sie die Ausgabe innerhalb der Shortcode-Funktion erstellen würden - aus meiner Sicht ist es nicht erforderlich, das gesamte HTML an den Shortcode zu übergeben - aber dies sollte funktionieren.

1
fischi

Es ist immer besser, das PHP-Zeug in Ihrer Funktionsdefinition zu verwenden und nicht, während Sie Ihren Shortcode ausführen.

Um mehr zu Fischis Antwort hinzuzufügen, können Sie sich auf den folgenden Ausschnitt beziehen.

function wptuts_first_shortcode($atts, $content=null){

    $return_variable = "";
    $database_name = "rams";
    $mydb = new wpdb(DB_USER, DB_PASSWORD, $database_name, DB_Host);
    $mydb -> show_errors();

    //Populate languages
    $languages = $mydb -> get_results(
        'SELECT * FROM language_skills'
    );

    foreach ($languages as $language){
       $return_variable = $return_variable."<br />".$language;
    }
    return $return_variable;
  }

add_shortcode($return_variable, 'wptuts_first_shortcode');

Sie können den zurückgegebenen Wert in Ihrer Shortcode-Anzeige verwenden.

Weitere Informationen finden Sie unter link .

1
Rohit Pande