J'utilise la boucle foreach
suivante:
$pages = get_pages(array ('post_type' => 'page','sort_column' => 'menu_order',));
foreach ($pages as $page) {
$apage = $page->post_name;
if ( $apage =='about') {
echo apply_filters('the_content', $page->post_content)
} // if about page
} // foreach
J'aimerais pouvoir obtenir l'extrait de la page ou poster au lieu de tout le contenu en utilisant
$post->post_excerpt
Est-ce possible?
EDIT
On dirait que je ne vous comprends pas bien. Je pense que vous manquez le point du post_excerpt
.
Lorsque vous créez un nouvel article ou une nouvelle page (autant que je sache), vous avez la possibilité de créer un extrait manuel dans la méta-boîte d'extraits (pour le rendre disponible, activez-le dans les options de l'écran lorsque vous cliquez sur le bouton Ajouter/Modifier). poste/page écran). Cet extrait manuel (ou extrait défini par l'utilisateur ) que vous entrez dans cette méta-boîte est enregistré sous post_excerpt
, que vous pouvez ensuite récupérer avec $post->post_excerpt
. Si cette méta-boîte est vide, c'est-à-dire si vous n'avez pas spécifié d'extrait manuel, rien ne sera retourné
Il ne fonctionne pas de la même manière que la balise de modèle, the_excerpt()
, qui crée un extrait à la volée en utilisant le contenu pour créer un extrait, que BTW ne fonctionne pas sur les pages.
S'il vous plaît vérifier WP_Post
post_excerpt
chaîne
Extrait de post défini par l'utilisateur
EDIT 2
Si la méta-boîte de l'extrait manuel n'est pas affichée, vous pouvez simplement l'activer avec le code suivant
add_action( 'init', 'add_excerpts_to_pages' );
function add_excerpts_to_pages() {
add_post_type_support( 'page', 'excerpt' );
}
RÉPONSE ORIGINALE
Votre utilisation de get_pages
ici est fausse ici. get_pages
n'est pas destiné à cet usage.
Vous devriez utiliser une requête personnalisée avec get_posts
ou WP_Query
Vous pouvez faire quelque chose comme ceci pour afficher vos pages et extraits
<?php
// The Query
$the_query = new WP_Query('post_type=page' );
// The Loop
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
the_title();
the_excerpt();
}
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
$query = new WP_Query( 'pagename=about' );
// The Loop
while ( $query->have_posts() ) {
$query->the_post(); ?>
<header class="entry-header">
<h2 class="entry-title">
<?php the_title(); ?>
</h2>
</header>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div>
<?php }
wp_reset_postdata(); ?>
J'ai fini par utiliser le code ci-dessus. Je vais devoir aller avec plusieurs requêtes au lieu de foreach boucle. Je veux toujours savoir comment obtenir un extrait en utilisant la boucle foreach que j'ai soumise.
Ajoutez ce code dans functions.php, cela ajoutera le support des extraits dans Pages
<?php
add_action('init', 'my_custom_init');
function my_custom_init() {
add_post_type_support( 'page', 'excerpt' );
}
?>
Utilisez ceci pour afficher l'extrait ..
$pages = get_pages(array ('post_type' => 'page','sort_column' => 'menu_order'));
foreach ($pages as $page) {
$apage = $page->post_name;
if ( $apage =='about') {
echo apply_filters('the_excerpt', $page->post_content);
} // if about page
} // foreach