Zeigen Sie Inhalte nur vor weiteren Tags an

7

Ich benutze die Sirenenvorlage. In homepage.php wird dieser Code verwendet, um den Portfolio-Inhalt anzuzeigen

print_excerpt(200);

Aber ich muss den Inhalt erst vorher zeigen <!--more-->

Ich habe das benutzt:

the_content( $more_link_text, FALSE);

aber es funktioniert nicht. Es zeigt den gesamten Inhalt

MajidGh
quelle
Dies ist ein Premium-Thema, auf das wir keinen Zugriff haben
Pieter Goosen
Ich benutze die kostenlose Version topwpthemes.com/siren
MajidGh

Antworten:

17

Mit der WordPress-Funktion können Sie get_extendeddie verschiedenen Teile eines Strings abrufen (den Teil vor und den Teil nach dem <!--more-->Tag). get_extendedGibt ein Array mit drei Schlüsseln zurück, von denen die Schlüssel mainund extendedwichtig sind: $arr['main']Enthält den Teil vor dem Tag more und $arr['extended']den Teil nach dem Tag more.

Dies würde so etwas ergeben wie:

// Fetch post content
$content = get_post_field( 'post_content', get_the_ID() );

// Get content parts
$content_parts = get_extended( $content );

// Output part before <!--more--> tag
echo $content_parts['main'];
engelen
quelle
Kleine Verbesserung, um mit der the_content()Funktion echo apply_filters('the_content', $content_parts['main']);
lange
0

Leider scheinen alle Funktionen in WordPress, die den Auszug ( get_extended, get_extended) rendern sollen, keine HTML-Tags anzuwenden oder Wagenrückläufe in Absätzen wie vorgesehen zu konvertieren.

Wenn Sie den Auszug mit Formatierung rendern müssen, empfehle ich Ihnen, diesen Code zu verwenden:

global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;

Mit dieser Problemumgehung teilen Sie der Funktion_content () mit, dass sie sich in einer Schleife befindet, und rufen den Inhalt vor dem more-Tag ab.

Marco Panichi
quelle