Shortcodes entfernen
-
Ich sollte bei > 1000 Beiträgen (in mehreren Websites) einen bestimmten Shortcode entfernen – wie könnte man sich das vereinfachen?
Das Script, welche diesen mit Inhalten füllt, ist ja schnell deaktiviert. Doch dann bleibt klarerweise dessen (leider manuell eingebauter) Shortcode im Klartext der Beiträge stehen. Schaut nicht gut aus.
Das Muster zu finden ist kein Problem, doch für das entfernen müsste nun jeder Beitrag manuell geändert werden. Ob das nicht auch anders ginge?
-
https://de.wordpress.org/plugins/remove-orphan-shortcodes/
https://de.wordpress.org/plugins/shortcodes-finder/Außerdem hier zwei Artikel/Anleitungen:
https://www.wpbeginner.com/wp-tutorials/how-to-find-and-remove-unused-shortcodes-from-wordpress-posts/
https://wp-staging.com/how-to-find-and-remove-unused-wordpress-shortcodes/Ein weiteres Plugin heißt „Shortcodes Cleaner“, das aber seit Jahren nicht mehr aktualisiert und supportet, aber dennoch weiterhin verkauft wird. Ich persönlich würde da weder die Free- noch die Pro-Version testen/verwenden.
Danke
„Remove Orphan Shortcodes“ hat gar nicht funktioniert (es zeigt sich keine Pluginseite)
„Shortcodes Finder“ ist okay und recht nützlich, bietet aber nichts besonderes zum ersetzen, es bleibt die manuelle Arbeit.Die beiden Anleitungen fand ich schon, helfen leider auch nicht.
Denn alle deren (über die Pluginmethode hinausgehenden) erweiterten Anleitungen gehen davon aus, das man den Shortcode Inhalt genau kennt. Das ist leider nicht der Fall. Nur das grundlegende Muster[kurzercode para1="?" para2="?"], aber der Inhalt, welcher hier mit „?“ ist, kann vieles sein.
Der Begriff „Regex“ geistert jetzt in mir herum, doch das schaffe ich irgendwie nicht. Andernfalls es auch mit „Better Search Replace“ klappen hätte können.Von „Ersetzen“ war im ersten Post keine Rede
Doch dann bleibt klarerweise dessen (leider manuell eingebauter) Shortcode im Klartext der Beiträge stehen.
bedeutet für mich, die Shortcodes ( z. B.
[shortcode]und ggf.[/shortcode]) zu entfernen. Die Plugins sollten dann eigentlich helfen, die exakten Shortcodes zu finden.Nachtrag:
Die beiden Anleitungen fand ich schon, helfen leider auch nicht.
Es ist übrigens hilfreich und zielführender, wenn man zusätzlich zur Beschreibung des Problems schreibt, was man bereits unternommen und ausprobiert hat. Das erspart uns allen Tipp- sowie Recherche-Arbeiten.
Und wenn du den Shortcode einfach neu schreibst und der dann nichts zurück gibt, so wie:
add_shortcode( 'shortcode_name', 'shortcode_handler_function' );
function shortcode_handler_function( $atts, $content, $tag ){
return '';
}Ersetzen im Sinne von anderen Inhalt zuweisen, eh nicht; die sollen ganz entfernt werden. Also quasi ein „Ersetzen“ mit Null halt. Ich kanns nicht besser beschreiben.
Ja, „Shortcodes Finder“ findet die (ebenso finde ich die über die Beiträge-Liste, per phpmyadmin, per „Better Search …“ usw.), aber mit dem Finden allein ist es leider nicht getan.
Entfernen, die Codes mit nichts weg zu ersetzen, das schaffe ich so nicht.Auch das in manchen Anleitungen beschriebene „überschreiben“ der Ausgabe kann nur klappen, wenn man mittels Regex alle Parameter und deren Werte erfasst.
Konkret gehts um das veraltete Plugin „No API Amazon Affiliate“, welches so Codes baute wie:
[naaa asin="ABC123DEF"] [naaa asin="ABC123DEF, XYZ98712, AAA456BBB"] [naaa asin="ABC123DEF, XYZ98712, AAA456BBB" template="horizontal" max=3] [naaa bestseller="produktgruppe" market="DE"]Also müsste alle diese, doch etwas verschieden aufgebauten Codes weg. Nur wie?
Bloß [naaa*] wegmachen, mit nichts ersetzen geht ja so nicht …
Und mithilfe der functions.php (s. Post von @hupe13) und das auch in der von mir verlinkten Anleitung beschrieben wird?
https://wp-staging.com/how-to-find-and-remove-unused-wordpress-shortcodes/#3_Edit_functionsphp@hupe13
Solche Anleitungen fand ich eh auch schon. Doch dazu müsste man eben genau alle Codes von[naaabis]finden.
Denn shortcode_name würde funktionieren, wenn das bloß immer nur[naaa]wäre.Dann würde das eventuell funktionieren:
add_shortcode( 'naaa', 'shortcode_handler_function' ); function shortcode_handler_function( $atts, $content, $tag ){ return ''; }und statt [naaa] quasi ein „nichts“ zurückgeben.
(sofern ich den Code überhaupt irgendwie verstand?)Doch aufgrund der verschiedenen Parameter und der Werte zwischen den eckigen Klammern könnte das ohne genaue Regex Anweisungen schiefgehen.
Oder bin ich komplett falsch unterwegs?Ist das absichtlich noch im „edit“ Modus?
Schaue mir das besser dann an, wenn gespeichert. Danke, bis später.Nein, ich wollte einfach nur direkt auf den Code verlinken und habe den verkehrten Link erwischt, hier der Direktlink:
https://wordpress.stackexchange.com/a/354423Denn shortcode_name würde funktionieren, wenn das bloß immer nur
[naaa]wäre.Wie meinst du das? Ist der immer nur
naaaoder ist der auch malnuuu? Ist der immernaaa, sollte die Lösung funktionieren. Die Optionen und der Inhalt zwischen[naaa ...]und[/naaa]werden ignoriert.@hupe13
Die Attribute fehlen. Die Shortcodes sehen nicht so aus
[naaa]inhalt[/naaa]
sondern bspw. so
[naaa asin="ABC123DEF, XYZ98712, AAA456BBB" template="horizontal" max=3]Scheinbar liefern die erwähnten Plugins nicht die benötigten kompletten Shortcodes, sondern bilden dies stattdessen mit ? ab
[kurzercode para1=“?“ para2=“?“]
Na dann klappt es doch auch. (Copy und Paste vom originalen Code).
function naaa_shortcode($atributos) {
return '';
}
add_shortcode( 'naaa', 'naaa_shortcode' );Keine Ahnung, ich gehe davon aus, dass @onlaie das ausprobiert hat und es als „nicht funktionierend“ beschrieb? Das Plugin Orphan Shortcodes benötigt auch keine genauen/kompletten Shortcodes ¯\(°_o)/¯
Wie meinst du das? Ist der immer nur naaa oder ist der auch mal nuuu?
Ja, immer nur „naaa“
Die Optionen und der Inhalt zwischen [naaa …] und [/naaa] werden ignoriert.
Einen abschließenden [/Shortcode] gibts bei dem nicht. Eventuell liegt es daran, das diese Funktionen alle nicht tun.
function naaa_shortcode($atributos)
tut auch nichts, also die Anzeige bleibt gleich. (ja, cache leeren, cookies weg, privates Fenster ist eh klar.)
schaue ich mir dann nochmal an.
Scheinbar liefern die erwähnten Plugins nicht die benötigten kompletten Shortcodes, sondern bilden dies stattdessen mit ? ab
Das „?“ habe ich anfangs nur als schnellen Platzhalter hier genommen. In echt sehen die eben so aus, wie im #6 gezeigt.
Aber ja, die sind ohne schließenden Code.Das Plugin Orphan Shortcodes benötigt auch keine genauen/kompletten Shortcodes
Das wäre cool. Schade, das es sich nicht zeigen mag.
- Du musst angemeldet sein, um auf dieses Thema zu antworten.