WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

Simplicity2の人気記事ウィジェットにカスタム投稿タイプも含める方法

公開日:2017(平成29)年5月5日/最終更新日:

Simplicity2の人気記事ウィジェットにカスタム投稿タイプも含める方法



【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

WordPressのテーマである「Simplicity2」。当サイトでも使用させていただいております。本当に必要な機能が詰まっていて至れり尽くせりのテーマです。「なんで公式テーマにないの?」「公式サイトに登録したらもっと使う方が増えるのに」と思う方もいるかもしれませんが、作者であるわいひらさんの方針なのでしょう。あまり使われる方が増えて画一化されていくのもどうかと思うので、私的にはあまりSimplicity2化してほしくない部分もあります(わいひらさんすみません・・・)。

まあ、このサイト含め私が作るサイトで使っている「Simplicity2」は結構カスタマイズしちゃってるのでヘッダー+本文+右サイドバーである・・・ということ以外はオリジナルとは別物になってしまっているので、ぱっと見て「あ、このサイトSimplicity2だ!!」と気づかないかもしれませんね。

今回行うのは、このテーマの機能として搭載されている、人気記事表示ウィジェットのカスタマイズ。ひょっとしたら「Simplicity2」の配布サイトにも出てるかもしれませんがあしからず。

「Simplicity2」の人気記事表示ウィジェットには最初から

  • すべての記事の中から人気記事をWordPress Popular Postsプラグインのデータと連携して表示する
  • 今見ているのと同じカテゴリーの記事の中から人気記事をWordPress Popular Postsプラグインのデータと連携して表示する

という条件設定ができるようになっています。1についてはWppのウィジェットと同じ機能ながらより詳細な設定ができるようになっているものです。

おすすめするのは2の機能。今見ている記事と同じカテゴリーの人気記事が表示できるんです。これをプラグインで表示しようとすると

を使う位しか思いつきません(色々探しましたがこのプラグインだけのようですね)。

すべての記事の人気表示をするのと圧倒的に違うのは、リスト内からリンクして別ページを見てもらえる確率。実際に計れるわけではないですが、いろいろな分類の記事を書くサイトではまったく関係ないリストが表示されるよりも、興味のある「今見ているもの」と同じようなリストが表示されれば思わず・・・となることは想像できますね。

で、早速使ってみると1つ問題が。それは「カスタム投稿タイプの記事は含まれない」ということです。

これから説明するようにちょっとカスタマイズすれば含まれるようになるのにどうして??と思うところですが、カスタム投稿タイプってサイトの作者が任意に投稿タイプ名を設定できるし、数も無制限なので開発段階で含めることができないのです(と勝手に想像しました)。

「Simplicity2」テーマでカスタム投稿タイプを使ったサイトを運営中の方で、このカテゴリー別人気記事ウィジェットが使えない・・・とあきらめている方必見のカスタマイズ方法です。簡単にできますから是非実装してくださいね。

Simplicity2の人気記事ウィジェットにカスタム投稿タイプも含める方法

子テーマを使っている前提で前準備として子テーマに必要な親テーマのphpファイルをコピーします。コピーはFTPを使って一旦パソコンへダウンロードした後で子テーマフォルダの中へアップロードしてもいいですし、

を使ってWordPressの管理画面上からファイルの出し入れをしてもいいでしょう。

コピーするファイルは2種類あります。人気記事ウィジェットにはサムネイル画像の表示方法によって

  • デフォルト(小さいサムネイル画像)のとき・・・popular-posts-entries.php
  • 大きなサムネイルのとき・・・popular-posts-entries-large.php

の2つがありますので、使用する側もしくは将来的に切り替えてもいいように両方をコピーしましょう。画像に何を使うかというところ以外構造はどちらも変わりません。

カスタマイズは子ページへコピーしたものを使います。テーマ編集で子テーマの中の「popular-posts-entries.php」を開きましょう(popular-posts-entries-large.phpもほとんど同じです)

11行目あたりに

$post_type = $g_is_pages_include ? null : 'post_type="post"&';

というのがあります。ここで投稿タイプを指定して、下のほうのプログラムで呼び出しています。

ここへ例えば「test」という投稿タイプを加えるとすると

$post_type = $g_is_pages_include ? null : 'post_type="post,test"&';

と書き換えるだけです。後ろのほうの「’post_type=”post”&’」を「’post_type=“post,test”&’」にするだけなんですね。複数の投稿タイプを含める場合には「,投稿タイプ名」を追加していくだけです。

たったこれだけで複数の投稿タイプを含めた人気記事一覧が表示できます。この設定は全記事の人気記事一覧にも適用されますから便利ですね。

phpの構文とはちょっと違うなぁと思う方もいるかも知れませんが、ここで指定した文字列は単純にWPP(WordPress Popular Posts)のパラメーター値として与えるだけなのでこの書き方になるようです(私的には大変勉強になりました)。

「Simplicity2」のすばらしさについて

他のテーマを使われている方がご覧になっていることを考えて、このテーマのすばらしさを

で力説させていただいていますので、よかったら一読くださいね。