Skip to content

Filter hooks

K-Mix39 edited this page May 20, 2019 · 36 revisions

Filter hooks 目次

Filter hooks リファレンス

snow_monkey_use_awesome_components

HTML コンポーネント挿入機能を有効化

add_filter( 'snow_monkey_use_awesome_components', '__return_true' );

snow_monkey_display_contents_outline

投稿への目次の自動表示を有効化

add_filter( 'snow_monkey_display_contents_outline', '__return_true' );

snow_monkey_display_child_pages

固定ページへの「このページの子ページ」の自動表示を有効化

add_filter( 'snow_monkey_display_child_pages', '__return_true' );

snow_monkey_related_posts_args

関連記事のクエリをカスタマイズ

/**
 * @param array $args
 * @return array
 */
add_filter(
	'snow_monkey_related_posts_args',
	function( $args ) {
		return $args;
	}
);

snow_monkey_breadcrumbs

パンくずの設定

/**
 * @param array $items パンくずの配列
 * @return array パンくずの配列
 */
add_filter(
	'snow_monkey_breadcrumbs',
	function( $items ) {
		// パンくず最後の項目を変更する場合の例
		$items[ count( $items ) - 1 ] = [
			'link' => リンクURL,
			'title' => パンくずに表示するタイトル文字列,
		];
		return $items;
	}
);

snow_monkey_template_part_root

テンプレートのルートディレクトリを設定
( 5.3.1以降、非推奨。後述のsnow_monkey_template_part_root_hierarchyに移行 )

MEMO:
テンプレートのルートディレクトリとして参照する。
対象のルートディレクトリに対象のテンプレートファイルがある場合はそれを読み込む。
無ければ、テーマから読み込む。
なお、このFilter hookが複数使用された場合は、優先度が最も低いものの結果がルートディレクトリに設定される。

/**
 * @param array $root 元のルートディレクトリ
 * @param array $slug 対象のtemplateのslug
 * @param array $name 対象のtemplateの名前
 * @param array $vars パラメータ
 * @return $root ルート先とするディレクトリ
 */
add_filter(
	'snow_monkey_template_part_root',
	function( $root, $slug, $name, $vars ) {
		return __DIR__ . '/templates';
	},
	10,
	4
);

snow_monkey_template_part_root_hierarchy

テンプレートのルートディレクトリを配列で設定
( 5.3.0以降 )

MEMO:
配列内を順にルートディレクトリとして参照する。
対象のルートディレクトリに対象のテンプレートファイルがある場合はそれを読み込む。
無ければ、次のルートディレクトリを読んでいく。
すべてがない場合、テーマから読み込む。

ルートディレクトリが重複した場合は並びの若い順に一意性を保つ。
なお、このFilter hookが複数使用された場合は、優先度が最も低いものの結果が最終的に設定される。

/**
 * @param array $hierarchy ルートディレクトリ配列
 * @param array $slug 対象のtemplateのslug
 * @param array $name 対象のtemplateの名前
 * @param array $vars パラメータ
 * @return $root ルート先とするディレクトリ配列
 */
add_filter(
	'snow_monkey_template_part_root_hierarchy',
	function( $hierarchy, $slug, $name, $vars ) {
		$hierarchy[] = __DIR__ . '/templates';
		return $hierarchy;
	},
	10,
	4
);

snow_monkey_google_adsense

Googleアドセンスの設定

MEMO:
広告を表示したくない場合には、returnで値を返却しない形で使用する。

/**
 * @param $ad アドセンス情報
 * @return $ad アドセンス情報
 */
add_filter(
	'snow_monkey_google_adsense',
	function( $ad ) {
		return $ad;
	}
);

snow_monkey_prepend_drawer_nav

ドロワーナビゲーション内メニュー前にHTMLを表示

add_action(
	'snow_monkey_prepend_drawer_nav',
	function() {
		echo '表示したいhtml文字列';
	}
);

snow_monkey_append_drawer_nav

ドロワーナビゲーション内メニュー後にHTMLを表示

add_action(
	'snow_monkey_append_drawer_nav',
	function() {
		echo '表示したいhtml文字列';
	}
);

snow_monkey_prepend_body

bodyタグの直後にHTMLを表示させる

add_action(
	'snow_monkey_prepend_body',
	function() {
		echo '表示させたいhtml文字列';
	}
);

snow_monkey_blocks_pro

別プラグインのSnow Monkey BlocksのProブロックの使用許可を設定する
(内部用な為、使用は非推奨)

add_filter( 'snow_monkey_blocks_pro', '__return_true' );

snow_monkey_copyright

copyrightの記述を設定する
(内部用な為、使用できません)

MEMO: 5.4.8 現在、内部のみ使用可能。外部設定しても動作はしません。
理由としては、copyrightについてはカスタマイザーで設定する事が推奨される為。
app/setup/copyright.phpにて最優先な取得を行われています。

add_filter(
	'snow_monkey_copyright',
	function( $value ) {
		return '表示させたいhtml文字列';
	}
);

snow_monkey_get_template_part_args

テンプレートパーツの取得クエリを操作する

MEMO: 特定のテンプレートパーツ内のフックの追加や削除は、$args['slug']などで判定し、このフックで削除します。

/**
 * @param $args テンプレート取得クエリ
 * @return $args テンプレート取得クエリ
 */
add_filter(
	'snow_monkey_get_template_part_args',
	function( $args ) {
		return $args;
	}
);

snow_monkey_get_template_part_<slug>

該当のテンプレートパーツの出力を変更

MEMO: フック名の<slug>の部分は、該当のテンプレートパーツのslug名となります。
想定される使い方として、テンプレートの特定のHTMLを置換するなどに使います。(コードを参照)

/**
 * @param $name テンプレート名
 * @param $vars テンプレートへのリクエスト配列
 */
add_action(
	'snow_monkey_get_template_part_templates/view/404',
	function( $name, $vars ) {
		\Framework\Helper::get_template_part( 'templates/view/404' );
		$html = ob_get_clean();
		ob_start();
		$html = mb_ereg_replace(
			'書き換え前の文字列',
			'書き換え後の文字列',
			$html
		);
		echo $html;
	},
	10,
	2
);

snow_monkey_get_template_part_<slug&gt-<name>

該当のテンプレートパーツの出力を変更

※ Snow Monkey v6 ベータ3より追加

MEMO: フック名の<slug>と<name&gtの部分は、該当のテンプレートパーツのslug名、またはname名となります。
想定される使い方として、テンプレートの特定のHTMLを置換するなどに使います。(コードを参照)

/**
 * @param $name テンプレート名
 * @param $vars テンプレートへのリクエスト配列
 */
add_action(
	'snow_monkey_get_template_part_template-parts/content/entry/header/header-post',
	function( $name, $vars ) {
		\Framework\Helper::get_template_part( 'template-parts/content/entry/header/header', 'post' );
		$html = ob_get_clean();
		ob_start();
		$html = mb_ereg_replace(
			'書き換え前の文字列',
			'書き換え後の文字列',
			$html
		);
		echo $html;
	},
	10,
	2
);

snow_monkey_template_part_render

テンプレートパーツの最終出力を書き換える

/**
 * @param $html テンプレートパーツの出力HTML
 * @param $slug テンプレートパーツのslug
 * @param $vars テンプレートパーツの名前
 * @param $vars テンプレートパーツのリクエスト配列
 */
add_action(
	'snow_monkey_template_part_render',
	function( $html, $slug, $name, $vars ) {
		echo $html;
	},
	10,
	4
);

snow_monkey_design_skin_choices

デザインスキンの選択設定

MEMO: デザインスキンに対して使用する。
実際に存在しないデザインスキンを反映させると問題となるので、デザインスキン以外での使用は非推奨。

/**
 * @param $choices デザインスキンの選択用配列
 * @return $choices デザインスキンの選択用配列
 */
add_filter(
	'snow_monkey_design_skin_choices',
	function( $choices ) {
		$choices[ 'デザインスキンのslug' ] = 'デザインスキンの選択に表示するデザインスキン名';
		return $choices;
	}
);

snow_monkey_prepend_footer

フッターの前にhtmlを挿入する

MEMO: 位置的には、<footer>タグの後(ソーシャルナビの前)となる。

add_action(
	'snow_monkey_prepend_footer',
	function() {
		echo '表示させたいhtml文字列';
	}
);

snow_monkey_append_footer

フッターの後にhtmlを挿入する

MEMO: 位置的には、</footer>タグの前。コピーライトの上(正しくはページトップの前)となる。

add_action(
	'snow_monkey_append_footer',
	function() {
		echo '表示させたいhtml文字列';
	}
);

snow_monkey_prepend_sidebar

サイドバーの最初にhtmlを挿入する

MEMO: サイドバーの<aside>の後に挿入される。

add_action(
	'snow_monkey_prepend_sidebar',
	function() {
		echo '表示させたいhtml文字列';
	}
);

snow_monkey_append_sidebar

サイドバーの最後にhtmlを挿入する

MEMO: サイドバーの</aside>の前に挿入される。

add_action(
	'snow_monkey_append_sidebar',
	function() {
		echo '表示させたいhtml文字列';
	}
);

snow_monkey_recent_posts_widget_args

ウィジェット「Snow Monkey: 最近の投稿」の取得クエリを操作する

/**
 * @param $args 取得クエリ
 * @return $args 取得クエリ
 */
add_filter(
	'snow_monkey_recent_posts_widget_args',
	function( $args ) {
		// カスタム投稿(news)を最新の記事に含める例
		$args['post_type'] = [ 'post', 'news' ];
		return $args;
	}
);

snow_monkey_recent_posts_widget_args_$widget_id

ウィジェット「Snow Monkey: 最近の投稿」の該当ウィジェットIDの取得クエリを操作する

MEMO: $widget_idはウィジェットIDとなります。

/**
 * @param $args 取得クエリ
 * @return $args 取得クエリ
 */
add_filter(
	'snow_monkey_recent_posts_widget_args_$widget_id',
	function( $args ) {
		// 該当ウィジェットIDの、カスタム投稿(news)を最新の記事に含める例
		$args['post_type'] = [ 'post', 'news' ];
		return $args;
	}
);

snow_monkey_sidebar

サイドバーのテンプレートパーツの読み込みを制御

MEMO: デフォルトは優先度20。

add_action(
	'snow_monkey_sidebar',
	function() {
		if ( 該当テンプレートパーツに変更する条件 ) {
			\Framework\Helper::get_template_part( 'template-parts/widget-area/テンプレートパーツ名' );
		}
	}
);

snow_monkey_pre_page_header_image_url

ページヘッダーの画像URLを設定

MEMO: 適当な画像のURLを返すと表示されるようになり、nullなどであれば表示されないようになる。

/**
 * @param $url ページヘッダーの画像URL
 * @return $url ページヘッダーの画像URL
 */
add_filter(
	'snow_monkey_pre_page_header_image_url',
	function( $url ) {
		return $url;
	}
);

snow_monkey_page_header_image_url

5.6.1現在、廃止予定フック
前述のsnow_monkey_pre_page_header_image_urlへ変更されました。
使い方などは、そちらをご確認ください。

snow_monkey_prepend_main

メインコンテンツ前にHTMLを追加

MEMO: <manin>の後に追加される。

add_action(
	'snow_monkey_prepend_main',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_append_main

メインコンテンツ後にHTMLを追加

MEMO: </manin>の前に追加される。

add_action(
	'snow_monkey_append_main',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_prepend_contents

コンテンツの先頭にHTMLを追加

MEMO: <div class="l-contents" role="document">の後に追加される。 位置としてはお知らせバーの上辺りになります。

add_action(
	'snow_monkey_prepend_contents',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_append_contents

コンテンツの最終にHTMLを追加

MEMO: <div class="l-contents" role="document">の閉じタグ前に追加される。
位置としては、ソーシャルナビを含む、フッター表示の前です。

add_action(
	'snow_monkey_prepend_contents',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_before_contents_inner

インナーコンテンツ先頭の位置にHTMLを追加する

MEMO: 位置としては、パンくずをコンテンツの上と設定していれば、その下辺りになります。

add_action(
	'snow_monkey_before_contents_inner',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_after_contents_inner

インナーコンテンツ最終の位置にHTMLを追加する

MEMO: 位置としては、パンくずをコンテンツの下と設定していれば、その上辺りになります。

add_action(
	'snow_monkey_after_contents_inner',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_before_entry_content

エントリーコンテンツの先頭にHTMLを追加する

MEMO: 投稿や固定ページであれば、投稿本文、または固定ページのページ編集内容の先頭となります。

add_action(
	'snow_monkey_before_entry_content',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_after_entry_content

エントリーコンテンツの最終にHTMLを追加する

MEMO: 投稿や固定ページであれば、投稿本文、または固定ページのページ編集内容の最終となります。

add_action(
	'snow_monkey_after_entry_content',
	function() {
		echo '表示したいHTML';
	}
);

snow_monkey_content_width

コンテンツの横幅を設定する

MEMO: 基本的に、カスタマイザーで設定されたコンテンツの横幅の値が優遇されます。
デザインスキン等の場合にカスタマイザーを使用させず、コンテンツの横幅の設定を固定化する際などに使用されます。
デフォルトは、1220です。(5.6.1現在)

/**
 * @param $width コンテンツの横幅
 * @return $width コンテンツの横幅
 */
add_filter(
	'snow_monkey_content_width',
	function( $width ) {
		return $width;
	}
);

snow_monkey_entry_meta_items

投稿の概要要素(entry_meta)を追加する

MEMO: 投稿の概要要素とは、投稿記事タイトル下の「投稿日時、更新日時、投稿者名、カテゴリ」などの要素を指します。
<ul>タグ内に書かれているフックな為、<li>から記述する必要があります。(5.6.1現在)
各優先度によって表示される位置が異なります。(下記の数値位置は、5.6.1現在)

  • 1〜10 : 先頭
  • 11〜20 : 投稿日の後ろ
  • 21〜30 : 更新日の後ろ
  • 31〜40 : 投稿者の後ろ
  • 41以上 : カテゴリの後ろ
add_action(
	'snow_monkey_entry_meta_items',
	function() {
		echo '<li class="c-meta__item c-meta__item--アイテム名">表示したいHTML</li>';
	},
	10,
	1
);

snow_monkey_is_output_page_header_title

ページヘッダータイトルの表示の有効 / 無効を設定する

MEMO: ページヘッダータイトルとは、カスタマイザー設定の「デザイン」→「投稿ページ設定」→「アイキャッチ画像」の「ページヘッダーの上にタイトルを表示」などを有効にした際に表示されるタイトルの事です。
こちらの設定値より、後述の「snow_monkey_is_output_page_header」フックの設定値が優先されます。

/**
 * @param $is_output ページヘッダータイトルを表示するか(boolean)
 * @return $is_output ページヘッダータイトルを表示するか(boolean)
 */
add_filter(
	'snow_monkey_is_output_page_header_title',
	function( $is_output ) {
		return $is_output;
	},
	10,
	1
);

snow_monkey_is_output_page_header

ページヘッダーの表示の有効 / 無効を設定する

MEMO: ページヘッダーとは、カスタマイザー設定の「デザイン」→「投稿ページ設定」→「アイキャッチ画像」を「ページヘッダー」などで有効にした際に表示されるコンテンツです。
前述の「snow_monkey_is_output_page_header_title」フックの設定値より、こちらが優先されます。

/**
 * @param $is_output ページヘッダーを表示するか(boolean)
 * @return $is_output ページヘッダーを表示するか(boolean)
 */
add_filter(
	'snow_monkey_is_output_page_header',
	function( $is_output ) {
		return $is_output;
	},
	10,
	1
);

snow_monkey_page_header_title

ページヘッダータイトルを設定する

MEMO: ページヘッダータイトルについては、前述「snow_monkey_is_output_page_header_title」を参照。

/**
 * @param $title ページヘッダータイトル
 * @return $title ページヘッダータイトル
 */
add_filter(
	'snow_monkey_page_header_title',
	function( $title ) {
		return $title;
	},
	10,
	1
);

snow_monkey_page_header_thumbnail_size

ページヘッダー内のアイキャッチ画像サイズを設定

MEMO: デフォルトの設定値はSnow Monkeyで追加されたxlargeとなります。
WordPress管理画面内の「設定」→「メディア」で標準で用意されている「サムネイル(thumbnail)、中(medium)、大(large)」が変更値として使用可。

/**
 * @param $size ページヘッダー内のアイキャッチ画像サイズslug
 * @return $size ページヘッダー内のアイキャッチ画像サイズslug
 */
add_filter(
	'snow_monkey_page_header_thumbnail_size',
	function( $size ) {
		return $size;
	},
	10,
	1
);

snow_monkey_entry_summary_title_num_words

投稿タイトルのトリム文字数を指定

MEMO: マルチバイトパッチを当てている場合は、半分の値を返却しましょう。

/**
 * @param $num トリム文字数
 * @return $num トリム文字数
 */
add_filter(
	'snow_monkey_entry_summary_title_num_words',
	function( $num ) {
		return class_exists( 'multibyte_patch' ) ? 40 : 80;
	},
	10,
	1
);

snow_monkey_layout

表示させるレイアウトを設定します

/**
 * @param $layout レイアウト名
 * @return $layout レイアウト名
 */
add_filter(
	'snow_monkey_layout',
	function( $layout ) {
		return 'one-column';
	},
	10
);

snow_monkey_view

表示するビューを設定します

/**
 * @param $view ビュー配列
 * @return $view ビュー配列
 */
add_filter(
	'snow_monkey_view',
	function( $view ) {
		return [
			'slug' => 'templates/view/content',
			'name' => 'post',
		];
	},
	10
);

snow_monkey_social_nav_item

ソーシャルナビゲーションの各アイテム出力を変更

※ Snow Monkey v6 ベータ2より追加

snow_monkey_child_pages_title

子ページのタイトルを設定します

snow_monkey_controller

表示するコントローラーを設定します

snow_monkey_output_google_analytics

Googleアナリティクスの出力を変更します

snow_monkey_output_google_tag_manager

Googleアナリティクスのタグマネージャーの出力を変更します

Clone this wiki locally
You can’t perform that action at this time.