Simplicityを少し改造してみた 番外編 part24 同じカテゴリの人気記事 のショートコードを作ってみた

Simplicityには、すでに[S]人気記事と言うウィジェットがあります。機能的には同じようなもので貼り付けたい箇所がウィジェットエリアにあればそれを使うのが良いかと思いますが、記事の最後とか、最初とか途中の自分の好きな箇所に入れたいと思った場合やはりショートコードが便利です。

今回作ったものは、classを指定できて、タイトルも「カテゴリ名」に続く部分が設定できます。
プラグインwp_popular_postsを利用していますので、機能を利用する場合はインストール必須です。このショートコードを作るにあたって、元ネタになったのが、
の記事です。

例えば、「(未分類)の人気記事でーす」と言うタイトルで、classをtestにしたい場合、

とすれば、そのように展開されます。もし仮に、t_classがついていない場合は、.widget_titleが適用されます。titleの部分もなければ「カテゴリの人気記事」が適用されて、カテゴリ名が未分類の場合「未分類カテゴリの人気記事」となる感じです。

だけでも動作するので、色々試してみてください。

例えばclassの部分にtestと入れた場合

は、

このようなhtmlが出力されます。

例えばtitleの部分に「カテゴリの本日人気記事top5」と入れた場合

は、

例えばtitleの部分に「カテゴリの本日人気記事top5」、t_classにtestと入れた場合

なので、.sameCatWPPPにそれぞれの共通設定、.testに部分設定を入れておけば各箇所に合わせた表示が可能です。そこそこ重いプラグインなので、たくさん入れるのはあまりおすすめできませんが。

スクリプトの中身

子テーマfunctions.phpに以下を追記します。

if (is_single() || is_category() ) { にあるように、投稿記事と、カテゴリリストの表示の時だけ人気記事リストが表示するようになっています。後は特筆すべき箇所はないんですが、表示の仕方(データの拾い方等)の$args中身は、popular_postsの設定に色々と解説があるのでそこらを参考にいじることができます。

例えば、rangeの部分はどれぐらいの期間での集計かを表示するわけですが、上記の場合dailyになっているのでその日の人気順位なわけです。これらは、別途”daily”, “weekly”, “monthly”, “all”と言うようなパラメーターがあるので、ここで週間か、月間なのか今日の人気記事なのか、はたまた全期間のものかを指定することができます。

ショートコードなので、そこらを改良して使い分けするようにすることもできます。

例えば、

このようにすれば、

で週間を指定することができます。w部分は、w: weekly, m: monthly, a: all。何もない場合はdailyとすることができます。

まぁ言ってももともとpopular_postsにもショートコードはあるので、これら今回作ったものはいらないと言えばそうですが、どのように表示するか、あるいはclassをどのようにすればつけられるか等を細かく設定できるので、使い方は使う人次第と言う感じです。

スタイルについては、デベロッパーツールで色々見ながら格闘してください。

などとすればスタイルできると思います。この任意のクラスは、ショートコードのclass部分で指定するものです。

スポンサーリンク

シェアする

フォローする