wordpress
WordPressのトップページに更新情報(期間内新規投稿)を表示
作成日: 2024年8月10日
お知らせなどだけでは更新頻度が低いサイトで、他の情報を更新情報としてトップページに表示させるためのコード。
まぁ経験上更新とは記事の追加のみならずってとこもあるので、トップページの内容が変われば(この場合はけっこう大きくだが、内部リンクの加増などもあるからそこそこかな)更新と認識されたこともあるのでお試しで。
<?php
// 表示したいカテゴリのスラッグの配列
$category_slugs = array('news', 'event');
$args = array(
'category_name' => implode(',', $category_slugs),
'posts_per_page' => 5, // 表示する投稿数
'date_query' => array(
array(
'after' => '6 months ago', // 半年以内に変更
),
),
);
$the_query = new WP_Query( $args );
// 投稿がある場合
if ( $the_query->have_posts() ) {
echo '<section aria-hidden="false" style="display: block;">
<h2>更新情報</h2>
<div id="newsRwrap">';
while ( $the_query->have_posts() ) {
$the_query->the_post();
?>
<a href="<?php echo get_permalink(); ?>">
<picture>
<img loading="lazy" src="<?php the_post_thumbnail_url('thumbnail', array('class' => 'alignnone')); ?>" alt="<?php the_title(); ?>" />
</picture>
<h3 class="newsR"><span><?php echo get_the_date('Y年m月d日'); ?></span><?php the_title(); ?></h3>
</a>
<?php
}
echo '</div></section>'; // 入れ子要素の終了
wp_reset_postdata();
} else {
/*対象投稿が無い場合の別の表示処理*/
}
?>
入れ子とループ内のあれは適当に変える。
お知らせ含んで「お知らせ追加」「何々の記事を追加」などの枕詞を合わせてもいいでしょう。