以前「直近1ヶ月に投稿した記事の人気順位を表示するテンプレートを作りました」という記事で、このblogのメニューにある 過去1ヶ月の投稿 読まれた順表示 というページを表示するテンプレートを作りました。
投稿ページだけの人気を知りたくて作ったのですが、固定ページが入ってしまってたので投稿だけの人気順位になるように修正しました。
修正前は固定ページも入ってました
修正前は、
このように、blogの記事で見せるために作った固定ページまで順位に入ってしまっていました。
テンプレートで 固定ページでないとき という条件を付ける
テンプレートで記事を取ってきて取得するところでの判定はこんな感じになっていました。
if(($postValue->post_date > $oneMonthBefore) AND ($p['post_title'] != 'Home page')){
$postValue->post_date > $oneMonthBefore というところで1ヶ月前の日付より大きい、つまり1ヶ月以内の記事であること
$p[‘post_title’] != ‘Home page’ 記事のタイトルが Home page(トップページ) でないこと
を判定しています、これを
if(($postValue->post_date > $oneMonthBefore) AND ($p['post_title'] != 'Home page') AND ($postValue->post_type != 'page')){
このように修正しました。追加した部分は、
$postValue->post_type != ‘page’ post_type という値が page のときは固定ページなので、固定ページではないことという判定です。
この $postValueというは Jetpack Post Viewsのstats_get_csvという関数で取得したpostです。そのため、WordPressで一般的に使う is_post() とかでは判定できないため、取得した$postValueの中身を見てこの値を見つけました。
結果:固定ページが取り除かれて投稿だけの一覧になりました
上記で修正した結果、
このように固定ページが取り除かれて、投稿だけの一覧になりました(^^)/
テンプレートファイルのダウンロードはこちら↓
page-recentOnemonthPostedPopular
コメント