今年も数件、Snow Monkey に関するカスタマイズのご依頼を頂いており、その中でお久しぶりにお目にかかった snow_monkey_recent_posts_widget_args
というフックについて紹介します。
この記事は 「Snow Monkey / unitone Advent Calendar 2024」の2日目の記事として公開しています。
Snow Monkey にはたくさんのフックがある
多くの方がご存知の通り、Snow Monkey(を含む Snow Monkey 関連プロダクト)にはとてもたくさんのフックが用意されています。おそらく開発者のキタジマタカシさんも全てを把握されていないほどでしょう。(推測)
というのも、僕もそうですが、開発をする人の多くは、必要な状況になった時にドキュメントを確認したり、実際にコードを読んで良さげなフックを探すことが多いと思います。ですので、本当によく利用するフック以外は覚えていないことが多いかもしれません。
ぜひ興味のある方は、テーマを do_action
や add_filter
などで検索してみるとフックを辿る旅を楽しめるかもしれません。
これらフックの多さは Snow Monkey の特徴でもあり、それを好む制作者が多く利用しているのではないかなと個人的には感じています。
今年、ふと気づいた便利だったフック
そして、今年ふと気づいた便利なフックをここでは紹介したいと思います。といっても、かなり昔からあるフックなので目新しさは全くありません。古参 Snow Monkey ユーザーであればご存知の方も多いと思います。
そのフックとは…
snow_monkey_recent_posts_widget_args です!
では、どんな時に使うのでしょうか。これから簡単に紹介します。
特定のカテゴリーやタグを表示したくない場合に活躍
最近の投稿ブロックという Snow Monkey Block から提供されているブロックがあります。コアにも似たブロックはありますが、Snow Monkey 内で便利に投稿を表示したい場合に活用できます。
こちらのブロックでは、投稿タイプやカテゴリー、タグや著者で絞り込んで、投稿一覧を表示することができます。レイアウトも簡単に変更できますしね、便利です。
しかし、「このカテゴリー(またはタグ)に属する投稿は出力したくない」という場合には、管理画面からの設定では対応することができません。
そういった場合に、このフックが活躍します。
使い方
まず、処理を施したい「最近の投稿ブロック」の「高度な設定」から任意の HTML アンカーを設定します。ここでは、unshow_category_10
とします。
そして、my-snow-monkey.php
などから以下のようにコードを書きます。
add_filter(
'snow_monkey_recent_posts_widget_args_unshow_category_10',
function( $query_args ) {
$query_args['category__not_in'] = [ '10' ];
return $query_args;
}
);
こうすることで、カテゴリー ID が 10 のカテゴリーに属している投稿を一覧に表示させないことができます。
他にも様々なことができるのですが、要するに WP_Query のパラメータを設定しているだけなので、どんなことができるかは以下のドキュメントを参照してください。
タグであれば tag__not_in
などが利用できるでしょう。
やっぱり Snow Monkey は便利
ユーザーによって Snow Monkey を便利だと感じる部分は違うでしょう。僕がウェブサイトの制作の相談をもらって、Snow Monkey を採用する場合は以下のポイントを活用できる場合かなと感じています。
- 素早く立ち上げて運用を始めたい場合
→ サクッと立ち上げても最低限のデザインは整うので、見栄えが悪くないサイトデザインを爆速制作できる - 求められるデザイン的な好みがマッチしている
→ コテコテなデザインを求められる場合では、コストとニーズのバランスが悪くなるポイントを見極める必要がある
→ 要するに「デザインを実装するための Snow Monkey カスタマイズ費用」と「デザインを別途制作して実装する費用」の交差点を見極め - ブロックエディターをちゃんと使いたい場合
→ クラシックエディターはここ数年触ってもいない
まとめ
最近、unitone の方を触る機会が増えてきているので、久しぶりに Snow Monkey を触るとさっぱり忘れていることも多いのですが、やはり推しプロダクトの一つですので、ちゃんと触っていかなきゃいかんなぁ…と感じることがあります。
来年も Snow Monkey / unitone 楽しんでいきましょう!