apply_filter mit regExp

  • Hallo,

    ich versuche mich seit Stunden darum Content zwischen einem bestimmten div zu entfernen.

    Das Problem ist nicht die regExp sondern eher die Funktion the_content();

    Erstmal mein Script:

    PHP
    <?php 
    $preContent = $post->post_content;            
    $pattern = '/<div class=\"ngg-related-gallery\">(.*?)<\/div>/s';
    $regContent = preg_replace($pattern, 'raus' , $preContent);
    $cleanContent = apply_filters('the_content', $regContent);
    echo $cleanContent;
    ?>

    Das Schnipsel liegt in der entsprechenden while-Schleife etc.

    Nun ergibt die Variable $preContent das selbe wie get_the_content();, also nur den Text, ohne HTML und ohne Images, und deswegen funkt das Script auch nicht an der stelle wo ich $regContent verwendet. Hier ist ja das HTML Schnipsel noch nicht inne.

    Ein print $preContent würde ungefair so aussehen:
    [image id=1234]
    lorem ipsum.......

    Ein Ausgabe von the_content(); dagegen hat das gesamte HTML und Bilder inne.

    Ich muss auf die Ausgabe von the_content(); zugreifen, was leider Gottes nicht klappt. Denn erst bei Ausgabe dieser Funktion kommen weitere HTML-Schnipsel rein, unter anderem der <div class="ngg-...."> mit einer Vielzahl von Links, welche ich raus haben will.

    bin für jeden hilfe dankbar

    • 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

  • Ok, so rum klappt es :)

    Habs etwas modifiziert, grundlegend habe ich das preg_match zu früh gemacht.

    ggf brauchts mal jemand:

    PHP
    $content = $post->post_content;                        
    $pattern = '/<div class=\"ngg-([A-Za-z0-9_-]+)\">(.*?)<\/div>/s';    
    $content = apply_filters('the_content', $content);
    echo preg_replace($pattern, 'rille' , $content);

Jetzt mitmachen!

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