web-dev-qa-db-fra.com

Extraits de pages

J'ai inséré un extrait dans une page à l'aide du bouton "Plus" de WP GUI.

J'ai un loop-page.php personnalisé à partir duquel je veux afficher l'extrait. Mais il semble être vide?

Est-il possible d'afficher des extraits de pages enfants?

$pageChildren = get_pages('sort_column=menu_order&hierarchical=0&child_of='.$post->ID);
if ( $pageChildren ) {
  foreach ( $pageChildren as $pageChild ) {
    echo '<p>And the title is: '. $pageChild->post_title.'</p>';
        print_r($pageChild);
        if (!empty($pageChild->post_excerpt)){
            echo '<p><a href="' . get_permalink($pageChild->ID) . '">' . $pageChild->post_excerpt.'</a> </p> ';
        }
        echo '<hr />';
  }
}

enter image description here

1
mrtsherman

L'utilisation de la balise "more" ne crée pas d'extrait. Il crée simplement un lien "Lire la suite" lors de l'affichage de the_content () sur les pages d'index.

Les extraits sont créés/affichés comme suit:

Pour afficher un extrait, votre fichier de modèle doit appeler "the_excerpt ()" plutôt que "the_content ()". Remarque: vous utilisez l’équivalent $ post-> post_excerpt, qui devrait également fonctionner correctement.

La balise de modèle "the_excerpt ()" affiche ensuite l'extrait, qui est créé comme suit:

1) En entrant le contenu de l'extrait dans le champ "Extrait" de l'écran Modifier une page/Modifier une page. 2) automatiquement, en fonction du nombre de caractères, si aucun contenu n'est ajouté au champ "Extrait".

MODIFIER:

D'accord, j'ai totalement raté ça au début. Seuls les articles ont le champ "extrait". Les pages n'ont pas le champ "extrait". Ainsi, $ post-> post_excerpt ne sera jamais renseigné pour Pages (je pense).

Essayez d’exécuter "setup_postdata ($ pageChild)" dans votre boucle Foreach, puis de remplacer "$ pageChild-> post_excerpt" par "get_the_excerpt ()":

foreach ( $pageChildren as $pageChild ) {
    setup_postdata( $pageChild );
    echo '<p>And the title is: '. $pageChild->post_title.'</p>';
        print_r($pageChild);
            echo '<p><a href="' . get_permalink($pageChild->ID) . '">' . get_the_excerpt() .'</a> </p> ';
        echo '<hr />';
}

Ça marche?

2
Chip Bennett