WP
投稿の「ブログのトップに固定」が効かなかったので調べる
固定ページを利用したTOPページに数件だけ投稿記事を表示させていたのだが、表題のような事象が起きたのでチェック。
(トップ固定そのものを今まであまり意識してこなかった)
get_posts()を利用していたのを
<!-- get_posts() -->
<?php
$posts = get_posts(array(
"post_type" => "post",
"numberposts" => 3
));
if ( $posts ) : ?>
<?php foreach( $posts as $post ) : setup_postdata($post); ?>
<p>
<?php if($post->post_content=="") : ?>
<time><?php the_time('Y/m/d'); ?></time><strong><?php echo get_the_title(); ?></strong>
<?php else : ?>
<time><?php the_time('Y/m/d'); ?></time><strong><a href="<?php the_permalink(); ?>" class="anime"><?php echo get_the_title(); ?></a></strong>
<?php endif ; ?>
</p>
<?php endforeach; ?>
<?php else : ?>
<p><?php _e('記事が見つかりませんでした。'); ?></p>
<?php endif; wp_reset_postdata(); ?>
<!-- get_posts() -->
WP_query()に変更。
<!-- WP_query() -->
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 3
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<p>
<?php if($post->post_content=="") : ?>
<time><?php the_time('Y/m/d'); ?></time><strong><?php echo get_the_title(); ?></strong>
<?php else : ?>
<time><?php the_time('Y/m/d'); ?></time><strong><a href="<?php the_permalink(); ?>" class="anime"><?php echo get_the_title(); ?></a></strong>
<?php endif ; ?>
</p>
<?php endwhile; ?>
<?php else : ?>
<p><?php _e('記事が見つかりませんでした。'); ?></p>
<?php endif; wp_reset_postdata(); ?>
<!-- WP_query() -->
これでトップ固定が効く様になった。
【追記】別件でTOPページのtitleが「ニュース」といつの間にかなっていた件
2~3年前の納品時には問題なかったが、最近依頼でWPやプラグインのバージョンをアップデートした際、検索の結果の表記(TOPページ)が「ニュース|株式会社〇〇」となっていたので調査。
TOPページは固定ページで表示させており、ループ直前の
$wp_query = new WP_Query($args);
にある変数名「$wp_query」がグローバルに影響があるので、よくなかったみたい。
なので、こちらも
(略)
・
・
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
?>
で直りました。