【wordpress】新着記事と更新記事を別々に表示させる方法
PV数が伸び悩んでいます。このままでは先月よりマイナスになってしまうかもしれません。
それもそのはず、山林生活というタイトルにもかかわらず山林生活をしていないから。それが原因なのですが、こんな感じで寒くなるとついつい山林に滞在するのもしんどくなり、結果的に下界のぬくぬくした環境に甘んじてしまっています。タイトルを見て騙された―って人もいれば、当初から見てくれていたのに「最近山林の事載せなくなった。ツマンネ」ってなっている方も多いと思います。もし私が見ている側なのであれば同じように見ずにお気に入りから削除することでしょう。
でも、それでも行かない。
本当は山に行って山の生活をエンジョイしているところを提供したいのですが、なんだかそれって仕事みたいになっちゃうじゃないですか。好きな時にふらっと行って滞在するぐらいがちょうどよいのです。そのため山林滞在の記事もほんの少ししかアップできません。
もちろん行きたい気持ちはあるんですよ。でも行くとなると色々と準備が必要じゃないですか。心の準備とか。そのため足が遠のいてしまうんですよね。三月くらいになれば暖かいので滞在しやすいのですが。。。毎年1月、2月は山林から遠のいてしまいます。
しかしそうなるとやはりPV数は減少していきます。例え毎日更新といっても記事数が増えるだけでリピーターにはつながりません。ブログでPV数を集めるためにはリピーターを増やすのが一番なんです。今のような各ページごとつながりのないサイトの場合、一度訪れてそれでサヨウナラ。一人当たり3ページ見てくれれば1000人で3000PVになるわけですが、一人1ページだと1000PVにしかなりません。これが記事の良し悪しでPV数が変わってしまう難点です。
ただ私は素晴らしい文章を書けるわけもなく、期待を持たせるようなものを提供できるわけでもありません。さらにはサイト主旨とかけ離れたことばかり書いています。もちろんそれが好きっていうかなり特殊な私寄りの人もいるのかもしれません。しかしそんなのは微々たるものです。もっと万人に興味をもってもらわなければなりません。
といってもやっぱりそんなものは創造できないわけですので、この駄文を何とかしてPVアップにつなげていかなければなりません。
先日、過去記事を復活させることを思いつきまして。
しかしながら過去記事はGoogle検索で見るとスニペットが過去の日付になってしまっています。そのためこの部分の改善を行いました。
改善をした結果、Googleロボットが再巡回したところに関しては更新した日付に変わっています。
しかしこのロボット巡回、思うように動いてくれないわけです。一部は新しい日付に切り替わっています。ただ一部だけで大半は切り替わっていません。
Googleロボット「更新したって言ってるけどどうせ大したことないからそのままでよくネ」
こんな感じで巡回してくれないわけです。まぁ当然と言えば当然です。実際に記事を更新したページは限られています。でも全ページ先月初めに「更新ボタン」を押しています。更新ボタンを押せば一応は更新になるわけです。でもそれじゃあクローラーは更新したとは認識してくれないようで。
一応Googleには巡回リクエストを出すことができます。ただし必ず回るとも限らないし、回ったとしても更新したと認識せずにスルーされることもあるようです。
なんとかしてちゃんと回って欲しいと試行錯誤しました。
これまで過去記事を更新した感じを見てみると、比較的新しい記事に関しては更新後すぐにクローラーが回ってきているようです。新しい記事は認識が早い。恐らくその原因はトップページなど被リンクが多いことが理由となっているようです。当サイトのサイドバーには新着記事として5件分更新情報として表示されています。この部分は前ページに表示されていますので、最新記事の5件はどこからでもアクセスが可能ということです。
アクセスが可能のためクローラーも回りやすい。クローラーが回れば更新したとして認識してもらえる!?
ということで新着記事のほかに更新記事として5件分表示させることとしました。
しかしこのままでは新着記事と混ざってしまいます。
サイドメニュー上には新着記事が、その下に更新記事という形にしています。新着記事も更新という扱いになってしまいます。
表示は5件分。つまり5日間で新着記事と更新記事の内容が同一のものになってしまうのです。かといって毎日更新するわけにもいかず、また更新したとしてもやはり次の日には新着記事が混ざってしまいます。
これを更新記事だけを表示したいのですが、その方法がなかなか見つかりません。
そのため少しばかりイレギュラーな手法で対応しました。
<?php
$args = array(
'posts_per_page' => 5,
'order' => 'DESC',
'orderby' => 'modified',
'date_query' => array(
array(
'before' => '1 week ago'
)
),
);
$posts = get_posts( $args );
?>
上記は更新記事のソースです。
「'posts_per_page' => 5」で5件を表示する指定。
「'order' => 'DESC'」にて表示の順番を新しいものとします。
「'orderby' => 'modified'」これが更新記事を表示する指示となります。'modified'ではなく'date'の場合は新着記事のみになる形です。しかしこれだけだと新しい記事も更新記事という扱いで混ざってきてしまうのです。
そのため「'date_query'」を使って操作します。
こちらは表示する時期を指定します。「'before' => '1 week ago'」とは一週間前以前のものということになります。
このようにすることで、最近一週間の記事はこちらには表示されない形となります。過去記事は過去に投稿されたものですので除外されることはありません。
当然一週間の中で投稿された新着記事を更新したとしてもここには表示されません。
この形であれば新しい記事を書いたとしてもこちらのは表示されません。
つまり一週間何もしなくてもTopic PostsとUpdate Postsは別の記事を表示してくれます。
本来であればしっかりと記事を作成し、見る人にとって有益な情報を常に提供できるサイトにするのが望ましいのですが、所詮は素人がただの思い付きで書き綴っている駄文です。でもその駄文を良しとして見てくれる人が1000人、10000人と増えていけば、アフィリエイト収益も上がるのではないかと思います。
山林にも近々行く予定ではありますが、山林生活をしていない私も暖かく見守っていただけるとうれしいです。