WordPressで投稿作成時に「ブログのトップに固定」にチェックを入れてみたのですが、投稿のカテゴリー別一覧で先頭に表示されませんでした。
その時の対処方法をメモしておきたいと思います。
WP_Queryを利用する
使っているテーマにもよるのですが、投稿を一覧表示する場合、have_posts()とthe_post()を組み合わせて投稿の一覧を取得している場合が多いです。
/wp-content/themes/xxx/archive.phpなど
・・・
<?php while(have_posts()): the_post(); ?>
記事の表示処理
<?php endwhile; ?>
・・・
have_posts()でループする場合、先頭固定表示設定したかどうかに関係なく投稿が取得されてしまいます。
先頭固定表示設定を有効にするには、この部分をWP_Queryで記述し直す必要があります。
/wp-content/themes/xxx/archive.phpなど
・・・
<?php
$arg=array(
'orderby'=>'date',
'order'=>'DESC'
);
$query=new WP_Query($arg);
?>
<?php while($query->have_posts()): $query->the_post(); ?>
記事の表示処理
<?php endwhile; ?>
・・・
まとめ
修正自体はそれほど難しいものではないのですが、問題はどのテーマファイルを修正すればいいかを見つけるのにてこづりました。
まずは利用しているテーマのファイルを片っ端からgrepしてみるしかなさそうです。
参考