だから私は私のWordpressのサイトから最新の5つの投稿を得ているwp_query
を持っています。私がしたいのは、このクエリ内から、最新の投稿を入手して、これを一種の「ヒーロー」投稿として表示してから、他の4つの投稿を表示することです)とこのヒーローの記事の下にリストまたはグリッドで表示します。
これが私の問い合わせコードです(明らかに単純化されています):
<?php
$query_args = array(
"posts_per_page" => "5"
);
$listedPosts = new WP_Query($query_args);
// the loop
if ( $listedPosts->have_posts() ) {
while ( $listedPosts->have_posts() ) {
$listedPosts->the_post();
// loop content for hero post goes here (I need to get the most recent post).
}
}
// how would I show the other remaining posts in the query?
?>
$current_post
の WP_Query
プロパティを使用できます
$query_args = array(
"posts_per_page" => "5"
);
$listedPosts = new WP_Query($query_args);
// the loop
if ( $listedPosts->have_posts() ) {
while ( $listedPosts->have_posts() ) {
$listedPosts->the_post();
if ( (int) $listedPosts->current_post === 0 ) {
// loop content for hero post
} else {
// loop content for remaining posts
}
}
}
クエリ引数を以下のように変更すると、投稿は変更日順に並べられます。
$query_args = array(
"posts_per_page" => "5",
"orderby" => "modified",
"order" => "DESC"
);
そうすれば、ループ内で単純なif else else条件を使用して、最初の投稿を主人公として、残りをその下に表示することができます。
単純なboolean
トリガがその仕事をします。
<?php
$query_args = array(
"posts_per_page" => "5"
);
$listedPosts = new WP_Query($query_args);
// the loop
if ( $listedPosts->have_posts() ) {
$first_post = true;
while ( $listedPosts->have_posts() ) {
$listedPosts->the_post();
if( $first_post ) {
$first_post = false;
echo '<div class="post first">';
// loop content for hero post goes here (I need to get the most recent post).
echo '</div>';
} else {
echo '<div class="post">';
// Rest of the posts.
echo '</div>';
}
}
}
?>
それから.post.first
クラスを使用してさまざまなスタイルを設定します。さまざまなコンテンツ、コンテンツのさまざまな順序/クラス、さまざまな画像サイズなどを読み込むこともできます。