MENU

先頭に固定表示がある時とない時の覚書

2020.05.19 Wordpress

Wordpressでお客さまのサイトリニューアル中。 久しぶりに絶賛構築中です。
トップページで特定の記事があるときは表示させて、それ以外の時は決まった記事を表示させる。
という事を実現するのに悩んだ末、
「先頭に固定表示」を使うことにしたときの覚書。
途中発狂しそうになったので、鳥に叫んでもらいました。



無事に思うような動作が出来たのがこちらのコード。
思わず、万歳しました。

<?php 
$list_cnt = 1;
$sticky = get_option('sticky_posts');
if ( !empty($sticky) ) $list_cnt -= count($sticky);
if ( count($sticky) > 0 ):
    $the_query = new WP_Query(array(
        'post_type'=> 'post' , 
        'post__in' => $sticky,
    ));?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
                <h2>Pick UP</h2>        
                <a href="<?php the_permalink(); ?>">
                <?php the_post_thumbnail('thumbnail'); ?>
                <h3><?php the_title(); ?></h3>
                </a>
    <?php endwhile; ?>
<?php endif; ?>
<?php if ( $list_cnt > 0 ):
    $the_query = new WP_Query(array(
        'post__not_in' => get_option( 'sticky_posts' ), 
        'post_type'=> 'post' , 
        'posts_per_page' => 1,
        'p' => 1
    ));?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
                <h2>Other</h2>
                <a href="<?php the_permalink(); ?>">
                <?php the_post_thumbnail('thumbnail'); ?>
                <h3><?php the_title(); ?></h3>
                </a>
    <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>  

運用していただくお客さまは、「先頭に固定表示」にしたい記事がある時とない時、
更には、一時的にピックアップとして見せたい。
ただ、ずっと必要なわけでは無い。

そして、「先頭に固定表示」が無い時は決まった記事(写真)を表示させておきたいが、
文章や写真は変わる可能性があるので、お客さまの方で更新していただけるよう、
記事として登録した。

あれやこれやと混乱するよりは特定の記事を更新してもらった方が分かりやすいという結論になり、
今回は、「先頭に固定表示」が無い時は記事【記事ID=1】を表示させるという事になりました。