-
投稿者検索結果
-
2019年8月28日 1:02 PM #26332
返信が含まれるトピック: パンくず部分を帯状にするには?
例えばこんな感じはどうでしょうか?
PHP
add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { if ( 'template-parts/common/breadcrumbs' !== $slug ) { return $html; } return '<div class="p-breadcrumbs-wrapper"><div class="c-container">' . $html . '</div></div>'; }, 10, 2 );
CSS
.p-breadcrumbs-wrapper { margin: 0 calc(50% - 50vw); background-color: #f5f5f5; padding: .5em; } .p-breadcrumbs-wrapper .c-container { padding-right: 1.86957rem; padding-left: 1.86957rem; } @media (min-width: 40em) { .p-breadcrumbs-wrapper .c-container { padding-right: calc(1.86957rem + env(safe-area-inset-right)); padding-left: calc(1.86957rem + env(safe-area-inset-left)); } } .p-breadcrumbs-wrapper .c-breadcrumbs { margin: 0 !important; }
♥ 0いいねをした人: 居ません2019年8月21日 1:02 PM #25767返信が含まれるトピック: マルチサイトの時のヘッダ
@ケミさん
グローバル変数を使うよりこちらのほうが良いかも(あと、$html
は引数から渡ってくるのでob_start()
はしなくて大丈夫だと思います)。add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { $blog_id = get_current_blog_id(); if ( 'template-parts/header/1row' === $slug ) { if ( 1 === $blog_id ) { // 置換 $html = str_replace( '...', '...', $html ); } } return $html; }, 10, 2 );
♥ 0いいねをした人: 居ません2019年8月21日 12:31 PM #25761返信が含まれるトピック: マルチサイトの時のヘッダ
マルチサイトでのサイト毎の分岐方法は下記のサイトが参考になると思います。
もし、子テーマでされる場合であれば
template-parts/header/1row.php
の変更したい箇所に、それぞれの分岐処理を挟めば良いと思います。プラグインでされる場合であれば
global $current_blog; $blog_id = $current_blog->blog_id; add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name, $vars ) { if ( $slug === 'template-parts/header/1row' ) { ob_start(); \Framework\Helper::get_template_part( 'template-parts/header/1row', $name, $vars ); $html = ob_get_clean(); if ( 1 === $blog_id ) { // 置換したいhtml内容 } } return $html; }, 10, 4 );
と言う感じで、こちらも分岐でそれぞれの置換をやる形でどうでしょうか?
または分岐で読み込むテンプレートを変更するのも良いと思います。♥ 0いいねをした人: 居ません2019年8月19日 12:32 PM #25576返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して
> あ、「li をカスタマイズ」と書いていたのでスルーしましたが、li の中の .c-entry-summary コンポーネントは Helper::get_template_part() で呼ばれているのでフック通ります。
あ、なるほど。
> あーこれはバグかも…です。
一応調査っすね。再現などで解らない事あれば聞いてください。
widgets/snow-monkey-posts.php
のHelper::get_template_part
では正しく指定されている(値も正常っぽい)のに
その後のsnow_monkey_template_part_render
だと、$vars['_excerpt_length'] = NULL
のみになってしまうっぽいって感じです。♥ 0いいねをした人: 居ません2019年8月19日 10:39 AM #25550返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して
ちょっと確認したかったので再度トピックオープンしました。
その後にパッチ的に
snow_monkey_template_part_render
を通すように改修できないこともないとは思うのですが、結局他のブロックもsnow_monkey_template_part_render
を通るわけではない調べてみたらウィジェットでもrenderフックは通ってるようでした…。
ただ、通り方がちょっと特殊な感じで通ってるのでややこしかった…と。add_filter( 'snow_monkey_template_part_render', function ( $html, $slug, $name, $vars ) { if ( $slug === 'template-parts/loop/entry-summary' ) { if ( $vars['_entries_layout'] === 'rich-media' ) { ob_start(); <strong>ほにゃらら</strong> $html = ob_get_clean(); } } return $html; }, 10, 4 );
と書いて、最新の投稿ブロックを実行すると
$vars['_entries_layout']
が無いと言うNoticeが出た状態で処理されているっぽいです。
$vars
に渡されてないだけでrenderフックは通る結果になるので。ウィジェットを使わない場合は正しくvarsに代入されているので、ウィジェット時に渡されないのを注意すると言うのがちょっと使い方として…な所もあるので、もうちょいとこちらでも考えてみようかと思います。(そもそも使い方が悪い気もしてる)
一応、報告まで。♥ 0いいねをした人: 居ません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いいねをした人: 居ません -
投稿者検索結果