Einen Shortcode in WordPress (temporär) deaktivieren
Veröffentlicht: – Kommentar hinterlassen
Als ich an schematischen Daten gearbeitet habe, hatte ich das Problem, dass ein Shortcode innerhalb dieser Daten ausgeführt hatte, den ich dort nicht ausgeführt haben wollte. Daher suchte ich nach einem Weg, um diesen spezifischen Shortcode temporär zu deaktivieren. Ich wollte nicht alle Shortcodes deaktivieren, was durch das Entfernen von do_shortcode einfach möglich gewesen wäre, da ich an anderer Stelle die Shortcode-Unterstützung benötigte.
Die Idee
WordPress speichert alle registrierten Shortcodes innerhalb der globalen Variable $shortcode_tags. Die Idee war, den bestimmten Shortcode aus dieser Variable zu entfernen (die ein Array mit dem Namen der Shortcodes als Schlüssel ist), meinen Code auszuführen und den Shortcode dann wieder hinzuzufügen, damit er in nachfolgendem Code wieder ausgeführt wird. Und das funktionierte.
In der Realität …
… sieht der Code so aus:
global $shortcode_tags;
// we don't want to execute the grw shortcode here
if ( isset( $shortcode_tags['grw'] ) ) {
$ignored_shortcode = $shortcode_tags['grw'];
unset( $shortcode_tags['grw'] );
}
// do stuff
if ( isset( $ignored_shortcode ) ) {
$shortcode_tags['grw'] = $ignored_shortcode; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
}
Code-Sprache: PHP (php)
In my case, the problematic shortcode was called grw, that’s why the key is named like this. If it is available, I store it in a dedicated variable and remove it from $shortcode_tags (lines 4 – 7). Then I execute my code that requires this shortcode to be removed (line 9) and re-add it later, if the dedicated variable has been set (lines 11 – 13).
In meinem Fall hieß der problematische Shortcode grw, weshalb der Schlüssel auch so heißt. Wenn verfügbar, speichere ich ihn in einer eigenen Variable und entferne ihn aus $shortcode_tags (Zeilen 4 – 7). Dann führe ich meinen Code aus, der diesen Shortcode deaktiviert benötigt (Zeile 9) and füge ihn später wieder hinzu, wenn die eigene Variable definiert ist (Zeilen 11 – 13).
Neuveröffentlichungen