-
投稿者検索結果
-
2019年8月18日 11:08 AM #25421
返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して
inc2734_
の方のフックでしたかー(汗)> 結局他のブロックも snow_monkey_template_part_render を通るわけではない
確かに…微妙と言うか色々面倒な事になりますね。了解です。
使いたい部分で
inc2734_wp_awesome_widgets_render_widget
で適度にカスタマイズをするか通すようにするとかの方が楽かもって感じに思えますし、ちょっとそれで試してみてカスタマイズで質問が出たらまた別トピックで聞きますー。♥ 0いいねをした人: 居ません2019年8月17日 12:30 PM #25337返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して
最近の投稿ブロックは、最近の投稿ウィジェットとの互換性などの歴史的経緯から、
apply_filters( 'inc2734_wp_awesome_widgets_render_widget', $widget, $args, $instance );
というフィルターフックでカスタマイズできるようになっています。その後にパッチ的に
snow_monkey_template_part_render
を通すように改修できないこともないとは思うのですが、結局他のブロックもsnow_monkey_template_part_render
を通るわけではないので、ちょっと微妙かなと思います。♥ 0いいねをした人: 居ません2019年7月8日 9:01 AM #20951返信が含まれるトピック: 検索フォームのテンプレートフックについて
サイドバー等のウィジェットで出している検索フォームに関してはフックが掛からないっぽいです。
検索ウィジェットは 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いいねをした人: 居ません2019年7月7日 12:02 AM #20863返信が含まれるトピック: 検索フォームのテンプレートフックについて
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いいねをした人: 居ません2019年7月5日 10:10 AM #20665返信が含まれるトピック: ヘッダーコンテンツにサイト内検索のフォームを設置したい
ヘッダーコンテンツには直接 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いいねをした人: 居ません2019年7月4日 10:37 AM #20515返信が含まれるトピック: タクソノミーページのレイアウト崩れ
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いいねをした人: 居ません2019年6月17日 12:49 PM #18672返信が含まれるトピック: ロゴをセンターに設定した時に、ヘッダー左側部分にテキストを追加したい。
やり方はいくつか考えられます。どれがベストかちょっと判断に迷うところなので、思いつくパターンを列挙しますね。
※いずれの方法も 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いいねをした人: 居ません2019年6月8日 10:27 AM #17710返信が含まれるトピック: 投稿のホームページにしている固定ページのタイトルを表示したいです。
あ、すみません、一部コード間違ってました…。
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いいねをした人: 居ません2019年6月6日 12:59 PM #17580返信が含まれるトピック: 投稿のホームページにしている固定ページのタイトルを表示したいです。
こっちのほうがもっとシンプルでした!
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いいねをした人: 居ません2019年6月6日 9:44 AM #17565返信が含まれるトピック: 投稿のホームページにしている固定ページのタイトルを表示したいです。
あ!すみません!こちらのミスでした。下記でもう一度試してみてください。
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いいねをした人: 居ません2019年6月5日 3:25 PM #17542返信が含まれるトピック: 投稿のホームページにしている固定ページのタイトルを表示したいです。
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いいねをした人: 居ません2019年5月27日 1:32 PM #16391返信が含まれるトピック: [My Snow Monkey] Paginationのprev、next部分のclass名を指定したい
@ケミさん
例えば、「最初のページへ」「<」「1」「2」「>」「最後のページへ」
「 xxxx / yyyy ページ」
とか、最初、最後、何ページあるのかを表示したいとかそう言う場合って、フックがあれば出来るのかなーと。なんらかの文字列や要素を追加するようなカスタマイズなら、新しいフックを追加するより既存の
snow_monkey_template_part_render
で書き換えるのが良いのかなと。@kutsuさん
v6 でc-pagination__item-next
、c-pagination__item-prev
というクラスが追加されるようにしました。リリースをお待ちください…。♥ 0いいねをした人: 居ません2019年3月29日 6:55 PM #12957返信が含まれるトピック: コメントエリアの置換について
すみません、ちょっと打ち合わせでドタバタしていた為に、すれ違いでいただいていた返信確認が出来ていませんでした。
こちらのトピックで書かれていましたので、この部分だけ返信の形にします。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いいねをした人: 居ません2019年3月29日 3:40 PM #12949返信が含まれるトピック: コメントエリアの置換について
あと、
inc2734_view_controller_template_part_render
という最終出力を書き換えられるフックがあるので、前後に要素を足したいだけならそれを使うのが良いかもです(これも、ラップしてsnow_monkey_template_part_render
フックを作ったほうが統一性的に良さそうですが)。とりえあず上記はやります!
トピックとは別の事なので、アイデアを思いついたらまた別トピックを立てるかコミュニティの方で書きますね。
もし思いついたときはぜひ。助かります!
♥ 0いいねをした人: 居ません2019年3月29日 3:17 PM #12945返信が含まれるトピック: コメントエリアの置換について
そうか、フックの状況をみて 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いいねをした人: 居ません -
投稿者検索結果