it-swarm.com.de

entfernen Sie <p> -Tags aus the_content

Ich habe ein Post-Format von Image und stoße auf ein Problem, bei dem das Image von einem <p>-Tag umschlossen wird. Ich möchte dieses Tag (speziell in der single.php-Version) dieser Beitragstypen entfernen.

Wie kann ich die Formatierung in einem Thema erfassen und die <p>-Tags entfernen oder ein beliebiges Format für die Ausgabe dieses Post-Typs erstellen, ohne Beiträge eines anderen Post-Formats zu beeinflussen?

6
Smittles

Wordpress fügt die <p>-Tags automatisch dem Inhalt hinzu. Es wird also angezeigt, während der Inhalt geladen wird. Dies ist mit dem Filter wpautop. Daher entfernen wir diesen Filter nur für den Beitragstyp image. Sie können dies verwalten, indem Sie den folgenden Code in die Datei functions.php einfügen.

// Add the filter to manage the p tags
add_filter( 'the_content', 'wti_remove_autop_for_image', 0 );

function wti_remove_autop_for_image( $content )
{
     global $post;

     // Check for single page and image post type and remove
     if ( is_single() && $post->post_type == 'image' )
          remove_filter('the_content', 'wpautop');

     return $content;
}

is_single() prüft, ob ein einzelner Beitrag angezeigt wird.

8
Chittaranjan

Wenn dieser Beitragstyp als "Bild" bezeichnet wird, können Sie eine einzelne Vorlage erstellen, um nur die Anzeige des Bildbeitragstyps zu verwalten.

Kopieren Sie einfach Ihre 'single.php'-Datei und benennen Sie die Kopie in' single-image.php 'um. Jetzt können Sie nur die Bildbeiträge steuern. Um Tags zu entfernen, verwende ich gerne die Funktion strip_tags(). Wenn Sie den Inhalt des Posts mit the_content() drucken, wird der Inhaltsfilter bereits angewendet und Zeilen werden in <p> -Tags eingeschlossen.

Hier ist ein Beispiel, wie Sie den Inhalt Ihres Bildes ohne die Tags erhalten können:

$imageContent = get_the_content();
$stripped = strip_tags($imageContent, '<p> <a>'); //replace <p> and <a> with whatever tags you want to keep after the strip
echo $stripped;

Hoffe das hilft!

4
CreMedian

Fügen Sie einfach die folgende Codezeile in die functions.php-Datei Ihres Themas ein

Für den Inhalt:

remove_filter( 'the_content', 'wpautop' );

Zum Auszug

remove_filter( 'the_excerpt', 'wpautop' );

weitere Informationen: https://codex.wordpress.org/Function_Reference/wpautop

2
Saiful Islam

Sie können eine bestimmte Post-Klasse für den single-post oder single-format-standard verwenden und sie so einstellen, dass sie nur auf einer Seite angezeigt wird, wenn Sie dies wünschen, damit es für andere Teile der Website nicht zu Konflikten kommt.

Beispiel CSS Code *

.single-post .entry-content p:empty { display: none; }

Beispiel CSS-Code für bestimmte Post-Format Bild

.single-format-image .entry-content p:empty { display: none; }
0
Maqk

wenn Sie von einer bestimmten Seite oder einem bestimmten Beitrag entfernen möchten, können Sie dies aufrufen

<?php remove_filter ('the_content', 'wpautop'); the_content(); ?>
0
Muddasir

Sie können get_the_content() anstelle von the_content() verwenden. Dies kann Ihr Problem lösen, und eine andere Lösung entspricht der von @Chittaranjan beschriebenen

0

Um das p-Tag aus dem Inhalt zu entfernen, können Sie den folgenden Code verwenden

<?php remove_filter ('the_content', 'wpautop'); ?>
0
Rahul S

Eine andere Möglichkeit, es basierend auf der Lösung von @chittaranjan zu codieren

add_filter( 'the_content', 'remove_autop_for_image', 0 );

function remove_autop_for_image( $content ) {
     global $post;

     if ( is_singular('image'))
          remove_filter('the_content', 'wpautop');

     return $content;
}
0
Brad Dalton