Wie kann ich eine rechte Klammer in einem Funktionscode umgehen?
Ich arbeite an einem Google Map-Plugin, das Punkte codiert hat. Manchmal haben die Polygone das] darin, was WP glauben lässt, dass es das Ende des Shortcodes ist.
Beispielsweise:
[my_shortcode latitude='36.93' longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ]
Ich habe versucht, ]
was kein Problem für WP verursacht, aber es verursacht ein Problem für meinen Google-Kartencode. Ich könnte Regex verwenden, um] zu ersetzen, aber vielleicht gibt es einen einfacheren Weg. Hat der Shortcode ein Escape-Zeichen?
str_replace()
sollte die Arbeit auch erledigen. Wäre dann weniger ressourcenintensiv.Basierend auf der Antwort von Johannes Pille gibt es die Funktion wp, um eckige Klammern für die Verwendung von Text in Shortcode-Parametern zu umgehen:
Oft schlagen die Leute vor, den $ -Inhalt des Shortcodes für Textparameter zu verwenden, aber es gibt Fälle, in denen der Shortcode viele solcher Textparameter enthält.
quelle
Hier scheint es eine offizielle Seite zu geben: Escaping Shortcodes
Extrakt :
quelle
Auch wenn Sie NICHT mit url spielen, verwenden Sie urldecode (Ihr attribute_value), wobei% 5B und% 5D als Ersatz für [und] in Ihrem attribute_value verwendet werden.
Ihr Code könnte dann so aussehen:
In Ihrer WP-Seite:
[my_shortcode myattr="%5Bmyattribute_value%5D"]
Führen Sie dann in Ihrer Shortcode-Funktion Folgendes aus:
Dadurch werden die Zeichen [und] im $ origvalue wiederhergestellt, sodass $ origvalue jetzt Folgendes enthält:
[myattribute_value]
TIPP: Wenn Sie mit der URL spielen, machen Sie dasselbe, aber fügen Sie dem Funktionscode Folgendes hinzu:
Wenn das nicht klar ist: JA, ich mache urlencode (urldecode (ein Wert von $ atts)), um einen korrekten Teil einer URL zu erstellen.
Ganz einfach, hoffe das hilft.
Pierre
quelle
Dies ist eine alte Frage, aber hier ist eine Problemumgehung mit CSS. Schließen Sie anstelle von geschweiften Klammern die Zeichen wie folgt in einen Bereich ein:
<span class="bracket">some string</span>
Fügen Sie dann Folgendes zum Stylesheet des Themas hinzu:
Das Ergebnis sieht dann so aus:
[some string]
quelle
]
als Teil des Inhalts, nicht darum, wie er angezeigt wird.