Simplicityでは「人気記事」ウィジェットを使えばカテゴリ別の人気記事を出力することができますが(デフォルトの設定では)今見ている記事が人気記事だったらその記事も含まれるようになっています。
今見ている記事が人気記事だと分かるメリットもあるので一概にどちらが良いかは分かりませんが個人的には「他の記事への回遊を促す」目的なので閲覧中の記事は除外する設定にしてみました。
なお現時点(ver1.6.7)ではSimplicity本体に実装する予定は無いそうですが今後使えるようになる可能性もあるのでバージョンがこれより新しい場合はすでに実装されているか確認してみてください。
もくじ
人気記事ウィジェットから閲覧中の記事を除外する手順
それでは具体的にどうやって「閲覧中の記事を除外する」のか書いていきます。
親テーマのPHPファイルを子テーマにコピー
親テーマフォルダの中にある「popular-posts-entries.php」というファイルを子テーマにコピーします。
これで子テーマフォルダで編集した内容がブログに反映されるようになります。
popular-posts-entries.phpの中身
子テーマにコピーしたpopular-posts-entries.phpファイルを開いて中身を見てみると34行目から「どのように記事を抽出するのか」書かれていることがわかります。
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
if (function_exists('wpp_get_mostpopular')): $args = ' limit='.$g_entry_count.'& range='.$g_range.'& order_by=views& thumbnail_width=75& thumbnail_height=75& cat="'.$now_id.'"& wpp_start=""& wpp_end=""& post_start="<div class="popular-post"><ul>"& post_end="</ul></div>"&'. $post_type. 'stats_comments=0& stats_views='.($g_is_views_visible ? 1 : 0).''; wpp_get_mostpopular($args); endif; ?> |
例えば cat="'.$now_id.'"& は「現在のカテゴリから抽出する」など1行ずつ読み解いていけば意外と分かる部分が多くあります。
この中に「現在閲覧中の記事は除外する」という設定を追記すればOKということですね。
今見ている記事を除外する設定
追記するコードは以下のようになります。
1 |
pid="'.get_the_ID().'"& |
pid というパラメータが「どの記事を除外するか」というパラメータで、
'.get_the_ID().' というのが「現在の記事ID」を表しています。
このコードをどの行でも構わないので挿入すると機能するようになります。
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
if (function_exists('wpp_get_mostpopular')): $args = ' limit='.$g_entry_count.'& range='.$g_range.'& order_by=views& thumbnail_width=75& thumbnail_height=75& cat="'.$now_id.'"& wpp_start=""& wpp_end=""& pid="'.get_the_ID().'"& post_start="<div class="popular-post"><ul>"& post_end="</ul></div>"&'. $post_type. 'stats_comments=0& stats_views='.($g_is_views_visible ? 1 : 0).''; wpp_get_mostpopular($args); endif; ?> |
正しく除外されているか確認
最後に閲覧中の記事が除外されているか実際にブログを開いて確認してみます。
閲覧中の記事を表示するかどうかはブログによって変わってくると思いますが閲覧中の記事を除外したい人の参考になれば良いなと思います。