「snow_monkey_template_part_render」の検索結果

15件の結果を表示中 - 226 - 240件目 (全240件中)
  • 投稿者
    検索結果
  • #25421

    返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して

    Hatsuki
    閲覧者
    6

    inc2734_の方のフックでしたかー(汗)

    > 結局他のブロックも snow_monkey_template_part_render を通るわけではない

    確かに…微妙と言うか色々面倒な事になりますね。了解です。

    使いたい部分でinc2734_wp_awesome_widgets_render_widgetで適度にカスタマイズをするか通すようにするとかの方が楽かもって感じに思えますし、ちょっとそれで試してみてカスタマイズで質問が出たらまた別トピックで聞きますー。

    0
    いいねをした人: 居ません
    #25337

    返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して

    アバター画像キタジマ タカシ
    参加者
    2457

    最近の投稿ブロックは、最近の投稿ウィジェットとの互換性などの歴史的経緯から、

    apply_filters( 'inc2734_wp_awesome_widgets_render_widget', $widget, $args, $instance );
    

    というフィルターフックでカスタマイズできるようになっています。その後にパッチ的に snow_monkey_template_part_render を通すように改修できないこともないとは思うのですが、結局他のブロックも snow_monkey_template_part_render を通るわけではないので、ちょっと微妙かなと思います。

    0
    いいねをした人: 居ません
    #20951
    アバター画像キタジマ タカシ
    参加者
    2457

    サイドバー等のウィジェットで出している検索フォームに関してはフックが掛からないっぽいです。

    検索ウィジェットは WordPress コアのものなので、 template-parts/common/search-form 経由では呼ばれてないんです。独自の検索フォームウィジェットをつくらないと難しいのかも…ですね。

    ありゃ…それは気づかなかった…。と言うことは、自作してるアドオン系プラグインでは思い切り使ってるので他のプラグインで掛からなくなってたっぽいのもあったのかも。一度整理し直さないとですね…。ちょっと何か考えるとして、snow_monkey_get_template_part_template-は、なるべく使わないようにとりあえずの修正をすればって感じですか。

    それぞれのフックの意図としては、

    snow_monkey_get_template_part_xxx … テンプレートをつくらなくても、 functions.php などから中身を定義できる
    snow_monkey_template_part_render … テンプレートの書き換え

    となります。 snow_monkey_get_template_part_xxx は書き換え用途ではなく、複数個フックした場合は最終のものだけが反映される形になって混乱するかなと思ったので、最初のだけ反映されるようにしています。なのでこれは基本エンドユーザーが使って、プラグインからは使わないほうがスマートかもしれませんね…。

    0
    いいねをした人: 居ません
    #20863
    Hatsuki
    閲覧者
    6

    template-parts/common/search-form-xxx.php が僕の環境にはなかったので、試しに下記のコードを試してみたのですが、

    んーと、ちょっとやりたい事が上手く出来ないと言うか何と言うか…
    単純に検索フォームの位置を判別して置換を適用したいなと思ってます。

    ちょっとコードが適当ですが…

    add_filter( 'snow_monkey_template_part_render', [ $this, '_template_part_render' ], 10, 4 );
    
    public function _template_part_render( $html, $slug, $name, $vars ) {
    	if ( 'template-parts/common/search-form' !== $slug ) {
    		return $html;
    	}
    	echo $name;
    	ob_start();
    	View::render( 'form/index' );
    	$form_html = ob_get_clean();
    	$html = mb_ereg_replace(
    		'</form>',
    		$form_html . '</form>',
    		$html
    	);
    	return $html;
    }

    とした場合には、オーバーレイ時(overlay-search-box)、見つからない時(no-match)、404時(404)は$nameにも代入されて正しく反映されますが、
    サイドバー等のウィジェットで出している検索フォームに関してはフックが掛からないっぽいです。
    これをどうにかする場合、検索フォームの場合はget_search_formを使えばいけるっぽいんですが…そうした場合、全検索フォームに対して引っかかるが、フォームの位置判断が出来ない。

    フックが1つまでしかかけれない(2個目以降は無視される)

    ありゃ…それは気づかなかった…。と言うことは、自作してるアドオン系プラグインでは思い切り使ってるので他のプラグインで掛からなくなってたっぽいのもあったのかも。一度整理し直さないとですね…。ちょっと何か考えるとして、snow_monkey_get_template_part_template-は、なるべく使わないようにとりあえずの修正をすればって感じですか。
    renderフックなら問題なさそうなので、そっち使います。

    > 追伸:

    oh……適当に書いてしまってました。
    まあ、開発中はfilterで書いて後から直すって事の方が多いです…(actionフックはfilterって書いても動くし)

    0
    いいねをした人: 居ません
    #20665
    アバター画像キタジマ タカシ
    参加者
    2457

    ヘッダーコンテンツには直接 PHP コードは書けず、また、安全性の観点から、WordPress が HTML 出力時に form タグは除去してしまうようです。

    そこで、次の方法を考えてみました。

    1. 検索フォームを表示するショートコードをつくる
    2. ショートコードをヘッダーコンテンツで実行可能にする
    3. ヘッダーコンテンツにショートコード [search_form] を入れる

    これなら多分表示できるかなsと。下記のコードを My Snow Monkey プラグインか、子テーマの functions.php に貼り付けてみてください(My Snow Monkey、子テーマがよくわからない場合はお知らせください)。

    参考: My Snow Monkey プラグインについて

    /**
     * [search_form] で検索フォームを表示
     */
    add_shortcode(
    	'search_form',
    	function() {
    		ob_start();
    		get_template_part( 'template-parts/common/search-form' );
    		return ob_get_clean();
    	}
    );
    
    /**
     * ヘッダーコンテンツ内でショートコードを実行可能に
     */
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/header/content' !== $slug ) {
    			return $html;
    		}
    		return do_shortcode( $html );
    	},
    	10,
    	2
    );
    1
    いいねをした人: 居ません
    #20515

    返信が含まれるトピック: タクソノミーページのレイアウト崩れ

    アバター画像キタジマ タカシ
    参加者
    2457

    My Snow Monkey に下記のコードを貼り付けてもらうとどうでしょうか?

    /**
     * age, adress, gender のタクソノミーアーカイブのときは、一覧レイアウトを「simple」に固定
     */
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/archive/entry/content/content' === $slug ) {
    			if ( is_tax( 'age' ) || is_tax( 'adress' ) || is_tax( 'gender' ) ) {
    				$html = str_replace( 'c-entries--rich-media', 'c-entries--simple', $html );
    			}
    		}
    		return $html;
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2457

    やり方はいくつか考えられます。どれがベストかちょっと判断に迷うところなので、思いつくパターンを列挙しますね。

    ※いずれの方法も PC でのみ追加テキストが表示されます。
    ※また、いずれの方法も ヘッダーコンテンツ機能 を利用中(右側にテキストが表示されている)場合のみ有効です。

    (1) テンプレートの置換を利用する方法

    My Snow Monkey プラグインに下記のコードをコピペしてください。

    /**
     * template-parts/header/center の HTML を置換
     */
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/header/center' !== $slug ) {
    			return $html;
    		}
    		
    		return str_replace(
    			'<div class="c-row__col c-row__col--1-4 u-hidden u-visible-lg-up"></div>',
    			'<div class="c-row__col c-row__col--1-4 u-hidden u-visible-lg-up">追加テキスト</div>',
    			$html
    		);
    	},
    	10,
    	2
    );

    この方法のメリットは、Snow Monkey のアップデートによりこの追加テキスト部分以外に変更があっても、その影響を受けないことです。

    デメリットは、Snow Monkey のアップデートにより置換対象部分の HTML 構造が変わってしまうと、置換がされなくなってしまう(上記コードの書き換えが必要になる)ことです。

    (2) 子テーマでテンプレートを上書きする方法

    子テーマを使っていない場合は、子テーマの準備と有効化が必要です。

    themes/snow-monkey/template-parts/header/center.php/子テーマ/template-parts/header/center.php にコピーしてください。

    そして、/子テーマ/template-parts/header/center.php の中の

    <?php if ( $header_content ) : ?>
    	<div class="c-row__col c-row__col--1-4 u-hidden u-visible-lg-up"></div>
    <?php endif; ?>

    を、

    <?php if ( $header_content ) : ?>
    	<div class="c-row__col c-row__col--1-4 u-hidden u-visible-lg-up">追加テキスト</div>
    <?php endif; ?>

    のように書き換えてください。

    この方法のメリットは Snow Monkey のアップデートでヘッダーの HTML 構造に変更があったとしても、必ず子テーマにつくったファイルが使用されることです。

    デメリットは、Snow Monkey のアップデートヘッダーの CSS などが変更になっていると、デザインが崩れる可能性があります。

    v7.0.0 以上を使っている場合は各テンプレートファイルにバージョン番号が記述してあって、子テーマのテンプレートが Snow Monkey のテンプレートよりバージョン番号が低いと警告が出るようになっているので古くなっていることに気づきやすいです(v7.0.0 未満の場合はこの機能はありません)。

    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2457

    あ、すみません、一部コード間違ってました…。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'templates/view/home' !== $slug ) {
    			return $html;
    		}
    
    		// 記事ヘッダー( <code>.c-entry__header</code> )の HTML を取得
    		ob_start();
    		\Framework\Helper::get_template_part( 'template-parts/archive/entry/header/header' );
    		$entry_header = ob_get_clean();
    
    		// 置換して記事ヘッダーを足す
    		return str_replace(
    			'<div class="c-entry__body">',
    			$entry_header . '<div class="c-entry__body">',
    			$html
    		);
    	},
    	10,
    	2
    );

    とりあえず解決はしたということでトピック閉じます!

    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2457

    こっちのほうがもっとシンプルでした!

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'templates/view/home' !== $slug ) {
    			return $html;
    		}
    
    		// 記事ヘッダー( <code>.c-entry__header</code> )の HTML を取得
    		\Framework\Helper::get_template_part( 'template-parts/archive/entry/header/header' );
    		$entry_header = ob_get_clean();
    
    		// 置換して記事ヘッダーを足す
    		return str_replace(
    			'<div class="c-entry__body">',
    			$entry_header . '<div class="c-entry__body">',
    			$html
    		);
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2457

    あ!すみません!こちらのミスでした。下記でもう一度試してみてください。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'templates/view/home' !== $slug ) {
    			return $html;
    		}
    
    		global $post;
    
    		// 投稿のホームページにしている固定ページの情報を取得
    		// (これをしないと表示されるタイトルが一覧の1件目のタイトルになる)
    		ob_start();
    		$post = get_post( get_option( 'page_for_posts' ) );
    		setup_postdata( $post );
    
    		// 記事ヘッダー( <code>.c-entry__header</code> )の HTML を取得
    		\Framework\Helper::get_template_part( 'template-parts/content/entry/header/header' );
    		$entry_header = ob_get_clean();
    
    		// 投稿データをリセット
    		wp_reset_postdata();
    
    		// 置換して記事ヘッダーを足す
    		return str_replace(
    			'<div class="c-entry__body">',
    			$entry_header . '<div class="c-entry__body">',
    			$html
    		);
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2457

    snow_monkey_is_output_page_header_title はページヘッダーにタイトルを表示するためのフックになるので、.c-entry__header を出したい場合は別の方法をとる必要があります。

    いくつか方法はあると思いますが、ブログトップのテンプレート templates/view/home の一部を置換する方法を共有します。下記のコードを My Snow Monkey に貼り付けるとどうでしょうか?

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'templates/view/home' !== $slug ) {
    			return $html;
    		}
    
    		global $post;
    
    		// 投稿のホームページにしている固定ページの情報を取得
    		// (これをしないと表示されるタイトルが一覧の1件目のタイトルになる)
    		ob_start();
    		$post = get_post( get_option( 'page_for_posts' ) );
    		setup_postdata( $post );
    
    		// 記事ヘッダー( <code>.c-entry__header</code> )の HTML を取得
    		Helper::get_template_part( 'template-parts/content/entry/header/header' );
    		$entry_header = ob_get_clean();
    
    		// 投稿データをリセット
    		wp_reset_postdata();
    
    		// 置換して記事ヘッダーを足す
    		return str_replace(
    			'<div class="c-entry__body">',
    			$entry_header . '<div class="c-entry__body">',
    			$html
    		);
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    #16391
    アバター画像キタジマ タカシ
    参加者
    2457

    @ケミさん

    例えば、「最初のページへ」「<」「1」「2」「>」「最後のページへ」
    「 xxxx / yyyy ページ」
    とか、最初、最後、何ページあるのかを表示したいとかそう言う場合って、フックがあれば出来るのかなーと。

    なんらかの文字列や要素を追加するようなカスタマイズなら、新しいフックを追加するより既存の snow_monkey_template_part_render で書き換えるのが良いのかなと。

    @kutsuさん
    v6 で c-pagination__item-nextc-pagination__item-prev というクラスが追加されるようにしました。リリースをお待ちください…。

    0
    いいねをした人: 居ません
    #12957

    返信が含まれるトピック: コメントエリアの置換について

    Hatsuki
    閲覧者
    6

    すみません、ちょっと打ち合わせでドタバタしていた為に、すれ違いでいただいていた返信確認が出来ていませんでした。
    こちらのトピックで書かれていましたので、この部分だけ返信の形にします。

    remove_action( ‘inc2734_view_controller_get_template_part_template-parts/discussion/comment’, ‘__return_true’ );

    こちら、自動的にではなく、明示的に実行させるフックもあれば良いと思います。
    \Framework\Helper::ほにゃらら('template-parts/discussion/comment');
    みたいな形で、remove_actionがされるなら、
    統一性や内部が変更される際の影響も減るのではないでしょうか?
    自動的にだけでは無い理由として、同一のテンプレート以外であっても、読み込む前にremoveする事をしたい時がある為です。

    snow_monkey_template_part_renderについては、後ほどこちらの方で調べてみますね。

    0
    いいねをした人: 居ません
    #12949

    返信が含まれるトピック: コメントエリアの置換について

    アバター画像キタジマ タカシ
    参加者
    2457

    あと、 inc2734_view_controller_template_part_render という最終出力を書き換えられるフックがあるので、前後に要素を足したいだけならそれを使うのが良いかもです(これも、ラップして snow_monkey_template_part_render フックを作ったほうが統一性的に良さそうですが)。

    とりえあず上記はやります!

    トピックとは別の事なので、アイデアを思いついたらまた別トピックを立てるかコミュニティの方で書きますね。

    もし思いついたときはぜひ。助かります!

    0
    いいねをした人: 居ません
    #12945

    返信が含まれるトピック: コメントエリアの置換について

    アバター画像キタジマ タカシ
    参加者
    2457

    そうか、フックの状況をみて Snow Monkey 側で自動的に remove_action( 'inc2734_view_controller_get_template_part_template-parts/discussion/comment', '__return_true' ); するようにしとけばわりと素直ですかね。

    あと、 inc2734_view_controller_template_part_render という最終出力を書き換えられるフックがあるので、前後に要素を足したいだけならそれを使うのが良いかもです(これも、ラップして snow_monkey_template_part_render フックを作ったほうが統一性的に良さそうですが)。

    0
    いいねをした人: 居ません
15件の結果を表示中 - 226 - 240件目 (全240件中)

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。