web関連

wordpressの「この投稿を先頭に固定表示」の出力、条件分岐

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のデフォルトの機能なのに今まで使った事なかったわ… 過去の案件で、先頭に記事を固定というのあったけどコレ使えばよかった… 勉強不足…