J'utilise le modèle de sirène. Dans homepage.php ce code est utilisé pour afficher le contenu du portefeuille
print_excerpt(200);
Mais je n'ai besoin d'afficher le contenu qu'avant <!--more-->
J'ai utilisé ceci:
the_content( $more_link_text, FALSE);
mais ça ne fonctionne pas. Il montre tout le contenu
Vous pouvez utiliser la fonction WordPress get_extended
pour récupérer les différentes parties d’une chaîne (la partie avant et la partie après la balise <!--more-->
). get_extended
renvoie un tableau avec trois clés, dont les clés main
et extended
sont importantes: $arr['main']
contient la partie précédant la balise more et $arr['extended']
la partie après la balise more.
Cela donnerait quelque chose comme:
// 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'];
Malheureusement, il semble que toutes les fonctions de WordPress censées restituer l’extrait (get_extended
, get_extended
) n’appliquent pas les balises HTML ni ne convertissent les retours chariot dans les paragraphes aspectés.
Si vous avez besoin de rendre l'extrait avec la mise en forme, je vous suggère d'utiliser ce code:
global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;
Avec cette solution de contournement, vous dites à la fonction_content () qu’elle se trouve dans une boucle et récupère le contenu avant la balise more.