Sådan fjerner ubrugt shortcode fra indlæg [WordPress]
I WordPress, hvis du har brugt masser af plugins, vil du helt sikkert komme på tværs af et par, der kræver, at du lægger en shortcode i posten, som [shortcode_1], for at den kan fungere. Brug af kortkode kan være en god måde at tilføje funktionalitet til dit websted, men når du deaktiverer plugin'et, bliver kortnummeret i dit indhold ikke fjernet, og det vises i frontenden i sin ubehandlede form.
Sådan ser det ud i sin ubehandlede form:
Der er flere måder at fjerne ubrugt shortcode fra dit websted:
1. Fjern kortnummeret fra databasen
Hvis du ved, hvilken bestemt kortkode du vil fjerne, og du vil fjerne den permanent fra din database, kan du blot lave en SQL-forespørgsel med kommandoen nedenfor:
UPDATE wp_post SET post_content = REPLACE (post_content, '[shortcodename]', '');
Udskift "shortcodename" med den kortkode, du vil fjerne.
Bemærk : Dette er ikke en idiotsikker metode, fordi forskellige kortkoder kan komme med forskellige attributter og værdi, hvilket gør det svært at danne en catch-all SQL-forespørgsel.
2. Udskift kortnummer med tom værdi
Hvis du ved, hvilken kortkode du vil fjerne, men du ikke ønsker at fjerne den permanent, kan du få den til at gøre en tom værdi i stedet. Indsæt følgende kode i slutningen af functions.php
filen (før ?>
Taggen) i din temamappe.
add_shortcode ('shorcodename', 'mte_return_empty_shortcode'); funktion mte_return_empty_shortcode () {return ''; }
Udskift "kodenavnet" med den kortkode, du vil fjerne.
Bemærk : Dette er kun en god metode, hvis du ved, hvilken shortcode du vil fjerne. Du skal også sørge for, at kortnummeret ikke længere er aktivt, ellers kan det resultere i konflikt.
3. Fjern alle ubrugte kortkoder fra indhold (anbefales)
Hvis du har en masse kortkoder, som du ikke længere har brugt, og du ikke kan huske alt kortnummernavnet, er det her en ultimativ måde at deaktivere al ubrugt kortnummer i dit indhold.
Indsæt koden til slutningen af dine functions.php
lige før ?>
Taggen.
add_filter ('the_content', 'mte_remove_unused_shortcode'); funktion mte_remove_unused_shortcode ($ indhold) {$ pattern = mte_get_unused_shortcode_regex (); $ content = preg_replace_callback ('/'. $ mønster. '/ s', 'strip_shortcode_tag', $ indhold); returnere $ indhold } funktion mte_get_unused_shortcode_regex () {global $ shortcode_tags; $ tagnames = array_keys ($ shortcode_tags); $ tagregexp = join ('|', array_map ('preg_quote', $ tagnames)); $ regex = '\\ [(\\ [?)'; $ regex. = "(?! $ tagregexp)"; $ regex. = '\\ b ([^ \\] \\ /] * (?: \\ / (?! \\]) [^ \\] \\ /] *) * ? \\ /) \\] | \\] (: ([??! ^ \\ [] * + (: \\ [(\\ / \\ 2 \\]) [^ \\ [] * + ) * +) \\ [\\ / \\ 2 \\])) (\\]) «??; returnere $ regex; }
Hvad ovenstående kode gør er først at hente listen over alle aktive kortkoder, søg indholdet for kortnumre, der ikke stemmer overens med den aktive kortnummerliste og fjern kortnumrene. Den er ændret fra funktionen get_shortcode_regex, der kontrollerer for aktiv kortkode.
Bemærk : Denne metode skal fungere for alle ubrugte shortcode, og den fjerner ikke kortnummer permanent. Næste gang du genaktiverer plugin'et, fortsætter den respektive kortkode automatisk. På forsiden vil denne kode fjerne alt indhold, der er citeret mellem et "[" og "]" tag.