web関連
wordpressの「この投稿を先頭に固定表示」の出力、条件分岐
今まで、触ってこなかったwordpressの機能で「この投稿を先頭に固定表示」というのがあるんだけど、思ったより便利な機能だったのでメモ
サブループの「WP_Query」じゃないとうまくいかない
メインループとサブループの「get_posts」は「この投稿を先頭に固定表示」をチェックしていても先頭に固定されません。
だから、サブループの「WP_Query」を使う必要があります。
<?php
$args = array(
'post_type' => 'post',
);
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
// 出力用のコード
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<?php endif; ?>
サブループの「WP_Query」を使えば、特に記述を変えることなく勝手に先頭に記事が固定される。
条件分岐「is_sticky()」
「この投稿を先頭に固定表示」のチェックがされた記事は「is_sticky()」で条件分岐ができます。
<?php if(is_sticky()) : ?>
//「この投稿を先頭に固定表示」がチェックされてる記事
<?php else : ?>
//チェックされてない記事
<?php endif; ?>
「sticky」って変な名前だなと思ったけど、「粘着する」や「ベタベタする」とかの意味あるんすね。
wordpressのデフォルトの機能なのに今まで使った事なかったわ…
過去の案件で、先頭に記事を固定というのあったけどコレ使えばよかった…
勉強不足…