12 Stimmen

Den Wert des Abfragezeichenparameters in WordPress erhalten

Ich erstelle gerade ein WordPress-Plugin. Ich habe add_query_string() innerhalb von Anker-Tags verwendet, um Inhalte basierend auf dem Link zu laden, den der Benutzer angeklickt hat. Jetzt muss ich wissen, wie ich den Parameterwert in der aktuellen URI am besten abrufen kann.

Es handelt sich wahrscheinlich um eine ziemlich grundlegende und dumme Frage, aber ich bin neu im Programmieren, daher entschuldige ich mich, wenn ich einige Begriffe falsch interpretiere.

Das ist der Code:

        if ( current_user_can('manage_options') ) {
            echo (
                '

                        Option 1
                        Option 2

                '
            );

            // wenn adminoption == 1, lade Inhalt A
            // wenn adminoption == 2, lade Inhalt B

        }

19voto

Reine Johansson Punkte 318

Get_query_var('adminoption') funktioniert nur mit standardmäßigen oder registrierten Variablen. Für nicht standardmäßige Wordpress-Variablen müssen Sie diese zuerst in Ihrer functions.php-Datei registrieren:

function rj_add_query_vars_filter( $vars ){
    $vars[] = "adminoption";
    return $vars;
}
add_filter( 'query_vars', 'rj_add_query_vars_filter' );

get_query_var('adminoption');

Ich weiß, die Frage ist alt, aber ich hoffe, dass es jemandem hilft.

0 Stimmen

Was fügst du der $vars[] Array "group" hinzu? Sollte es nicht $vars[] = "adminoption"; sein?

15voto

David Carrus Punkte 172

Ich denke, du fragst nach der get_query_var() Funktion. In deinem Fall solltest du get_query_var('adminoption') verwenden. Hoffentlich hilft es

1 Stimmen

Vielen Dank, David. Gute Vorschlag, aber das hat bei mir nichts zurückgegeben. Die Wahrheit ist, ich weiß nicht einmal, ob ich add_query_arg() verwenden sollte. Alles, was ich tun muss, ist, Inhalte auf derselben Seite je nach Abfragezeichenfolge anzuzeigen. Ich könnte einfach eine Seite für jeden Link erstellen, aber das ist keine Option, da ich dann nichts lernen würde, und das Lernen ist der Hauptgrund, warum ich mit der Erstellung eines Plugins herumspiele.

2 Stimmen

Wie lautet Ihre URL, nachdem Sie auf einen Link geklickt haben? Ist es so etwas wie www.yoursite.com/?adminoption=1? Nur um zu wissen, ob Ihr Problem bei add_query_arg() beginnt. Wie auch immer, Sie können es mit dem alten PHP $_GET['adminoption'] versuchen.

1 Stimmen

Ja, die URL nach dem Klicken auf einen Link ist in Ordnung. Und $_GET['adminoption'] hat wunderbar funktioniert. Vielen Dank! Muss ich mir jedoch Sorgen um die Sicherheit machen, wenn ich $_GET verwende?

14voto

Erhöhen versteckte Antwort in den Kommentaren von David Carrus:

Wie auch immer, Sie können es mit dem alten php $_GET['adminoption'] versuchen.

10voto

Tomás Cot Punkte 982

Um eine Variable aus der Abfragezeichenfolge zu erhalten, können Sie die Methode $_GET['key'] von PHP verwenden.

Je nachdem, was Sie tun, können Sie auch get_query_var('key') verwenden, diese Funktion funktioniert mit Parametern, die von der WP_Query-Klasse akzeptiert werden (cat, author usw.).

Wenn Sie benutzerdefinierte Abfragevariablen mit dieser Funktion verwenden möchten, müssen Sie den query_vars-Filter verwenden, um die Liste der unterstützten Abfragevariablen zu ändern. Wie Sie das in der oben verlinkten Dokumentation tun können, erfahren Sie.

0 Stimmen

+1 Erstaunlicherweise funktioniert get_query_var('key') nicht mit benutzerdefinierten Argumenten, und dies ist die einzige Antwort, die darauf hinweist

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X