J'ai essayé d'utiliser soit WP_Query
ou get_posts
pour extraire le message le plus récent qui se trouve à la fois dans une catégorie et dans un format de message spécifique.
<?php
$singargs = array(
'numberposts' => 1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array ( 'gift-of-the-day' ),
),
array(
'taxonomy', => 'post_format',
'field' => 'slug',
'terms' => array( 'aside'),
)
)
);
$singPost = new WP_Query( $singargs );
foreach ( $singPost as $post ) : setup_postdata($post); ?>
<aside>
<h2><?php the_title(); ?></h2>
</aside>
<?php endforeach; wp_reset_postdata(); ?>
Qu'est-ce que je fais mal ici?
Je vois deux problèmes: changez aside
en post-format-aside
et puisque vous utilisez la boucle foreach, changez new WP_Query( $singargs );
en get_posts( $singargs );
pour que votre code ressemble à ceci:
<?php
$singargs = array(
'numberposts' => 1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array ( 'gift-of-the-day' ),
),
array(
'taxonomy', => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-aside'),
)
)
);
$singPost = get_posts( $singargs );
foreach ( $singPost as $post ) : setup_postdata($post); ?>
<aside>
<h2><?php the_title(); ?></h2>
</aside>
<?php endforeach; wp_reset_postdata(); ?>
Pourquoi ne pas simplement utiliser quelque chose comme:
$args = array('category' => 1 );
$all_posts = get_posts( $args);
foreach ($all_posts as $this_post) {
if ( has_post_format( 'aside' ) ) {
echo '<aside><h2>' . $this_post->title . '</h2></aside>';
break;
}
}
Cela pourrait être une erreur dans le code, mais l’idée est d’obtenir les articles dans la catégorie de recherche, puis de les analyser et de prendre le premier article au format recherché (au cas où vous ne pourriez pas utiliser votre code).
Désolé si je me trompe!