Next Gen Shortcodes aus Post filtern "the_content_rss"

  • Hallo Zusammen,

    ich benutze auf meinem Blog die Next Gen Gallery.
    Diese ermöglicht mir das einfache einfügen von Bildern, Alben, Gallerys in meine Beiträge durch Shortcode.

    z.B : [nggallery id=2]

    Das klappt auch alles super allerdings hab ich ein kleines Problem.

    Auf meiner Hauptseite wird der Inhalt der Posts durch

    PHP
    <?php the_content_rss('', TRUE, '', 8); ?>

    angezeigt.

    Dies hat leider den unschönen Effekt das dort auch die NxtGen shortcodes angezeigt werden.


    Ich suche nun nach einer Lösung mit der ich bestimmte Zeichenketten (zb.: [nggallery id=2]) aus dem "the_content_rss" raus filtern kann.

    Wie bringe ich meinem WP folgendes bei?

    Hole den Content_rss und stelle ihn dar aber aber ohne den Text in den eckicken Klammern.

    Gruss Sascha


    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich suche nun nach einer Lösung mit der ich bestimmte Zeichenketten (zb.: [nggallery id=2]) aus dem "the_content_rss" raus filtern kann.


    Raus"filtern" heißt auch tatsächlich "raus"?

    PHP
    function filter_shortcodes( $content) {
      return preg_replace('~\[[^]]*\]~', '', $content);
    }
    add_filter('the_content_rss', 'filter_shortcodes');


    in die functions.php deines Themes.

    (Eventuell muss das Regex-Pattern auch so lauten: \[[^[COLOR="Red"]\[/COLOR]]]*\] - probier mal aus welche Variante geht. Im Regex-Coach funktionieren beide, weiß aber jetzt nicht aus dem Kopf ob sich PHP da vielleicht anders verhält ;-))

  • Raus"filtern" heißt auch tatsächlich "raus"?

    PHP
    filter_shortcodes( $content) {
      return preg_replace('~\[[^]]*\]~', '', $content);
    }
    add_filter('the_content_rss', 'filter_shortcodes');


    in die functions.php deines Themes.

    (Eventuell muss das Regex-Pattern auch so lauten: \[[^[COLOR="Red"]\[/COLOR]]]*\] - probier mal aus welche Variante geht. Im Regex-Coach funktionieren beide, weiß aber jetzt nicht aus dem Kopf ob sich PHP da vielleicht anders verhält ;-))


    Hallo Marcus,
    vielen Dank für die schnelle Antwort.
    Habs in beiden Versionen ausprobiert leider ohne Erfolg.

    Hab den Code so wie du ihn angegeben hast in die functions.php meines Themes kopiert.
    Natürlich zwischen <?php tags.

    Mir ist nur aufgefallen das bei allen anderen einträgen in der functions.php noch function vor der eigentlichen Zeile steht. Auch diese Version brachte leider keinen Erfolg.

    Die shortcodes der Nextgen gallery werden immer noch im content-rssangezeit.

    Hast DU noch eine Idee. bei mir läuft übrigens php.50

    Gruss Sascha


  • Mir ist nur aufgefallen das bei allen anderen einträgen in der functions.php noch function vor der eigentlichen Zeile steht.


    Stimmt, da hast du natürlich recht. Ich habs oben ergänzt.

    Zitat

    Die shortcodes der Nextgen gallery werden immer noch im content-rssangezeit.


    Mmh, schade. Du kannst aber mal testen, ob der Filter überhaupt Anwendung findet:

    PHP
    function filter_shortcodes( $content) { 
      return "Dieser Inhalt wurde ersetzt." 
    } 
    add_filter('the_content_rss', 'filter_shortcodes');


    Wenn das klappt dann wirds wohl am Regex liegen.

  • Hat leider auch nicht geklappt.

    Meine functions.php beginnt jetzt mit :

    Und mein Browser liefert folgende Fehlermeldungen:


    Parse error: syntax error, unexpected '{' in /usr/www/users/raintr/wp-content/themes/ondemand/functions.php on line 2

    oder etwas mit unexpected T_String....


    Gruss und frohes Xmas


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!