web-dev-qa-db-fra.com

Plugin Utilisation de get_the_content Causer des problèmes avec <! - more -> Tag

Je teste le plug-in "Notre équipe" de Woothemes pour voir comment cela fonctionne pour les futurs projets.

Le plugin utilise à CPT pour les membres de l’équipe ainsi qu’un code court permettant aux utilisateurs d’afficher les membres sur une page.

Le problème auquel je me heurte, c'est que le contenu produit par le shortcode n'honore pas la balise <!--more-->. Je suppose que c'est parce que dans le fichier de woothemes-our-team-template.php à la ligne 196, il utilise get_the_content comme indiqué ci-dessous:

$content = apply_filters( 'woothemes_our_team_content', wpautop( get_the_content() ), $post );

Il semble qu’il existe également un filtre appelé "woothemes_our_team_content", mais quoi que j’essaie d’ajouter à mon functions.php, je ne parviens pas à reconnaître qu’il existe une balise <!--more-->. Tous mes efforts ont seulement réussi à supprimer tout le contenu.

Pour l’essentiel, je voudrais accrocher le filtre, le faire reconnaître la balise <!--more-->, puis changer le mot "Lire la suite" en "Lire la biographie complète ...".

Quelqu'un a-t-il des suggestions sur la meilleure façon d'y parvenir?

Merci d'avance!

1
Syrehn

La fourchette logique entre l'affichage du contenu complet et l'énoncé (c'est la partie appelée du début de la publication à la suivante) est régie par la variable globale $more. Cela dépend d'autres éléments globaux, etc., le point important étant qu'il n'est pas défini sur 0 lorsque vous le souhaitez. Probablement parce que vous utilisez ceci dans son contexte alors qu'il ne serait pas non plus mis à zéro pour une boucle normale.

Quelque chose comme ça devrait marcher:

add_filter( 'woothemes_our_team_content', function () {
    global $more;
    $real_more = $more;
    $more      = 0;
    $output    = wpautop( get_the_content() );
    $more      = $real_more;

    return $output;
} );

Vous pouvez simplement travailler avec link là-bas ou vous connecter à the_content_more_link pour le personnaliser.

2
Rarst