snow_monkey_get_template_part_args

  • ブックマーク
  • -
    コピー

snow_monkey_before_entry_content

snow_monkey_prepend_entry_content

こちらのフィルターフックでは、利用しているテンプレートファイルで使われているクエリを取得して変更することができます。

代表的な例として、抜粋文字数の変更を行う工程を試してみましょう。

クエリの中を覗いてみる

記事の一覧ページの各記事に表示される抜粋テキストを表示しているテンプレートファイルは以下になります。

template-parts/loop/entry-summary/content/content.php

ですので、フィルターフックは末尾につけるような形式で利用できるので、

snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content

になります。

こちらも同じような使い方ができます。

では実際にコードを書いてみましょう。

<?php
/**
 * @param $args テンプレート取得クエリ
 * @return $args テンプレート取得クエリ
 */
add_filter(
	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content',
	function( $args ) {
		echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
		echo( '<pre>' );
		var_dump( $args );
		echo( '<pre>' );
		echo '<hr>';
		exit;
	}
);

デバッグのためにvar_dump( $args )でクエリの中を覗いてみると…

my-snow-monkey.php :: 406
/Users/******/Local Sites/happy-snow-monkey/app/public/wp-content/plugins/my-snow-monkey/my-snow-monkey.php:408:
array (size=3)
  'slug' => string 'template-parts/loop/entry-summary/content/content' (length=49)
  'name' => string 'post' (length=4)
  'vars' => 
    array (size=2)
      '_entries_layout' => string 'panel' (length=5)
      '_excerpt_length' => null

_excerpt_lengthに何も入っていないという状態ですので、こちらに任意の数値を入れて抜粋の長さをコントロールしてみましょう。

<?php
/**
 * @param $args テンプレート取得クエリ
 * @return $args テンプレート取得クエリ
 */
add_filter(
	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content',
	function( $args ) {
		$args['vars']['_excerpt_length'] = 30;
		return $args;
	}
);

実際に表示を確認しながら、最適と思う数値に変更してみてください。

公式リファレンス

snow_monkey_get_template_part_argsフックを
Snow Monkey公式フォーラムで検索する
「あれ?この情報、古くない?」と思ったらご連絡ください。

snow_monkey_append_entry_content

snow_monkey_after_entry_content

HAPPY SNOW MONKEYの管理人情報

久野 晃司

Web制作系フリーランス。WordPressに関するお仕事や活動が多いです。

WordPressコア貢献者/テーマ開発者/プラグイン開発者/Meetupオーガナイザー/翻訳貢献者