WordPressのデフォルトでは、トップページの記事一覧が公開日順に並ぶようになっています。ただしこれだと、新しい内容を追加したりして更新した記事が優先してトップページに表示されることはありません。
そこで今回は、更新した記事が埋もれてしまわないよう、トップページの記事一覧が更新日順に並ぶよう変更し、さらに更新日が表示されるように変更する方法を紹介したいと思います。
目次
変更前と変更後の表示
前述のように、WordPressのデフォルトでは、トップページの記事一覧が公開日順に並んで、公開日が表示されます。当サイトのテーマはSimplicityを使用しているので、上のようになります。
これを以下のように変更します。
変更後は、このように更新日順に並んで、「」と更新の日付が表示されます。更新していない記事は、公開日が更新日として扱われて並び順が決まり、「」と公開の日付はそのまま表示されます。
変更の方法
それではここから、変更の方法を説明していきたいと思います。
home.phpとentry-card-content.phpを子テーマにコピー
今回の変更は、home.phpとentry-card-content.phpの変更によって行います。
親テーマのファイルを変更しても良いのですが、それだとテーマをバージョンアップした際に、変更がリセットされてしまいます。そのため、2つのフアイルのコピーを変更して、それを子テーマの方にアップロードすることにします。
当サイトの場合、親テーマのphpファイルは以下のディレクトリにあります。
/fscene.net/public_html/wp-content/themes/simplicity2/home.php
/fscene.net/public_html/wp-content/themes/simplicity2/entry-card-content.php
これらをダウンロードして変更してから、以下の子テーマのディレクトリにアップロードします。
/fscene.net/public_html/wp-content/themes/simplicity2-child/home.php
/fscene.net/public_html/wp-content/themes/simplicity2-child/entry-card-content.php
なお、ダウンロードとアップロードにはFFFTPを、phpファイルの変更にはTeraPadを使用しています。
home.phpを変更して更新日順に並ぶようにする
1 2 3 4 5 6 |
<?php //トップページ用 ?> <?php get_header(); ?> <?php get_template_part('list') ?> <?php get_footer(); ?> |
home.phpはデフォルトで、上のような内容になっています。
これを以下のように変更します。
1 2 3 4 5 6 7 8 |
<?php //トップページ用 ?> <?php get_header(); ?> <?php query_posts($query_string .'&orderby=modified'); ?> <?php get_template_part('list') ?> <?php wp_reset_query(); ?> <?php get_footer(); ?> |
ハイライト表示になっている4行目と6行目を追加しています。
変更したファイルを、子テーマのディレクトリにアップロードします。
すると、このように更新日順に(更新していない記事は、公開日が更新日として扱われて)並びます。
ただし、この段階では「」と、それに続く公開の日付は変わっていません。
entry-card-content.phpを変更して更新日を表示させて、完成
1 2 3 4 |
<p class="post-meta"> <?php if ( is_create_date_visible() ): //投稿日を表示する場合?> <span class="post-date"><span class="fa fa-clock-o fa-fw"></span><span class="published"><?php the_time( get_theme_text_date_format() ) ;?></span></span> <?php endif; //is_create_date_visible?> |
entry-card-content.phpの「<p class=”post-meta”>」を探します。それ以下の4行はデフォルトで、上のような内容になっています。
これを以下のように変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<p class="post-meta"> <?php //更新した記事は更新日を、更新していない記事は公開日を表示 $update = $post->post_modified; $pst = $post->post_date; $need = (!empty( $update )) ? $update : $pst; $dt = date("Y/n/j", strtotime($need)); $fahistory = '<span class="post-date"><span class="fa fa-history fa-fw"></span><span class="published">'.$dt.'</span></span>'; $faclock = '<span class="post-date"><span class="fa fa-clock-o fa-fw"></span><span class="published">'.$dt.'</span></span>'; if ($update > $pst) { echo $fahistory; } else { echo $faclock; } ?> |
なお、この変更は以下のページを参考にさせていただいたうえで、独自の内容を追加しています。
変更したファイルを、子テーマのディレクトリにアップロードします。
すると、冒頭でも示したように、更新日順に並んで、「」と更新の日付が(更新していない記事は、公開日が更新日として扱われて並び順が決まり、「」と公開の日付はそのまま)表示されます。
おわりに
更新した記事も、新しい記事と同じくらい、皆に読んで欲しいものですよね。なので、今回紹介した方法を参考にして、更新した記事が読者の目に触れる機会を、もっと増やしていただければと思います。