snow monkeyのフィルターを使ったカスタマイズでよく利用するもの

Snow Monkey / unitone Advent Calendar 2022の二日目の記事としてお送りします。

My Snow Monkeyプラグインを利用してSnow Monkeyをカスタマイズしますね。そのときにadd_action関連なら、HAPPY SNOW MONKEY | 100%GPL有料WordPressテーマ Snow Monkeyの非公式カスタマイズデモサイト を参考にするのがいいとも思います。

いつも大変お世話になってます。昨日のアドベントカレンダー初日の記事もおすすめです。Snow Monkeyを使ったウェブサイト制作チップス2022

じゃあ、この記事は何か?というとadd_filterを利用したカスタマイズで、よく使うものを集めました。フィルターフックについてはこちらをご覧ください。 add_filter() | Function | WordPress Developer Resources

では、早速参りましょう!

theme_mod_関連を利用したカスタマイズ

こちらは、主にカスタマイザーから設定できるレイアウトの変更について紹介しています。「じゃあ、カスタマイザーでいいじゃん?」となるかもですが。色んな事情があります。

例えば特定のカテゴリーとその子のカテゴリーだけ、レイアウトを変更したいとか。ログインしてるユーザーの権限でレイアウトを変えたいとか。なにかしらの条件でレイアウトが変えたい場合があるわけです。そのときにはこちらを利用してます。

ヘッダーは全体の theme_mod_header-potition とPC用の theme_mod_header-potition-lgで設定します。

/**
 * ヘッダーのレイアウト変更
 *
 * @param string $setting レイアウトのセッティング
 * sticky : 上部固定
 * sticky-overlay : オーバレイ(上部固定)
 * sticky-overlay-colored : オーバーレイ(上部固定 / スクロール時背景白)
 * overlay : オーバレイ
 * '' : ノーマル.
 */
function megane_header_layout( $setting ) {
	$setting = 'sticky-overlay';
	return $setting;
}
// SP用.
add_filter( 'theme_mod_header-potition', 'megane_header_layout' );
// PC用.
add_filter( 'theme_mod_header-potition-lg', 'megane_header_layout' );

ページ自体のレイアウトはこちら。レイアウトの名前を今回一覧にしたのは、ワタシ的に今後使いやすそうです。

/**
 * レイアウトを変更
 *
 * @param string $setting レイアウトのセッティング
 * blank-content : ランディングページ(ヘッダー・フッターあり)
 * blank : ランディングページ
 * blank-slim : ランディングページ(スリム幅)
 * one-column : 1カラム
 * left-sidebar : 左サイドバー
 * one-column-slim : 1カラム(スリム幅)
 * one-column-full : フル幅
 * right-sidebar : 右サイドバー.
 */
function megane_layout_setting( $setting ) {
	$setting = 'one-column';
	return $setting;
}
add_filter( 'snow_monkey_layout', 'megane_layout_setting' );

snow_monkey_get_template_part_args_を利用したカスタマイズ

snow_monkey_get_template_part_args_hoge を利用すると、設定をサクッと変更できます。これで事足ることもわりとありますね。

ハンバーガーメニューの下の文字をカスタマイズします、なくしたいときは空でかえします。

/**
 * ヘッダーのハンバーガーナビの文字を変更
 *
 * @param array $args ハンバーガーボタンの設定.
 */
function megane_hamburger_btn( $args ) {
	$args['vars']['_label'] = '👓';
	return $args;
}

add_filter( 'snow_monkey_get_template_part_args_template-parts/header/hamburger-btn', 'megane_hamburger_btn' );

カテゴリー毎に特定のヘッダー画像と文字を入れたいなどの場合はこちら。文字と背景画像を設定します。

/**
 * アーカイブのヘッダー中身を変更する
 *
 * @param array $args ヘッダーのアイキャッチ部分の設定.
 */
function megane_page_header_arg( $args ) {
	$args['vars']['_title'] = '👓';
	$args['vars']['_image'] = '<img src="' . MY_SNOW_MONKEY_URL . '/dist/img/something.png" alt="something">';
	return $args;
}

add_filter( 'snow_monkey_get_template_part_args_template-parts/common/page-header', 'megane_page_header_arg', 10, 3 );

次前のリンクを同カテゴリに絞る

/**
 * 下部の次前の記事へのリンクを同じカテゴリーのみに限定する
 *
 * @param array $args 次前の設定.
 */
function megane_prev_next_nav( $args ) {
	$args['vars']['_in_same_term'] = true;
	return $args;
}
add_filter( 'snow_monkey_get_template_part_args_template-parts/content/prev-next-nav', 'megane_prev_next_nav' );

アイキャッチのサイズを変更する。
カテゴリごとに、レイアウトが違うときなどは、最適なサイズを選ぶほうが表示が軽くなったりしていいですよね。

/**
 * 一覧のアイキャッチのサイズをthumbnailに変更
 *
 * @param array $args 次前の設定.
 */
function megane_archive_thumbnail_size( $args ) {
	$args['vars']['_thumbnail_size'] = 'thumbnail';
	return $args;
}
add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/figure/figure', 'megane_archive_thumbnail_size', 10, 3 );

404の文言を変更する。

/**
 * 404のメッセージ変更
 *
 * @param array $args は404で表示される文言.
 */
function megane_404_message( $args ) {
	$args['vars']['_message'] = 'お探しのページは見つかりませんでした。';
	return $args;
}
add_filter( 'snow_monkey_get_template_part_args_template-parts/content/entry/content/404', 'megane_404_message', 10, 3 );

というわけで、本日はここまでです。

おそらくこれまでにカスタマイズされたことのある人は、あれ?一番良く使うはずの snow_monkey_template_part_render_template-parts の例は?となったはずです。

それはまた次回!まだまだアドベントカレンダー期間は続きますからね。きっとどこかでかくと思います。ではまた明日。

とりあえず二日連続で書けてよかったです。

いま、改めて調べたら、色々書いてあるものがあったので、こちらも参考に