-
投稿者検索結果
-
2019年9月14日 9:39 AM #27924
返信が含まれるトピック: アーカイブページの記事一覧レイアウトのリッチメディアの日付の位置について
再度エラーが出てしまいました、何度もすみませんがご確認お願いします…
wp-content/plugins/my-snow-monkey/my-snow-monkey.php
ファイルの81行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。syntax error, unexpected ';', expecting ',' or ')'
念の為、全コード載せときます!
add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name, $vars ) { if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) { if ( 'rich-media' === $vars['_entries_layout'] ) { $html = preg_replace( '|<div class="c-entry-summary__meta">.*?</div>|ms', '', $html ); ob_start(); \Framework\Helper::get_template_part( $meta = ob_get_clean(); $html = str_replace( '<h2 class="c-entry-summary__title">', $meta . '<h2 class="c-entry-summary__title">', $html ); } } return $html; }, 10, 4 );
♥ 0Who liked: No user2019年9月13日 11:30 PM #27876返信が含まれるトピック: アーカイブページの記事一覧レイアウトのリッチメディアの日付の位置について
CSS の調整は必要かもしれませんが、とりあえずこんな感じでしょうか。My Snow Monkey プラグインか子テーマの functions.php に下記を追加してみてください。
add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name, $vars ) { if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) { if ( 'rich-media' === $vars['_entries_layout'] ) { $html = preg_replace( '|<div class="c-entry-summary__meta">.*?</div>|ms', '', $html ); ob_start(); Helper::get_template_part( 'template-parts/loop/entry-summary/meta/meta' ); $meta = ob_get_clean(); $html = str_replace( '<h2 class="c-entry-summary__title">', $meta . '<h2 class="c-entry-summary__title">', $html ); } } return $html; }, 10, 4 );
♥ 0Who liked: No user2019年9月1日 4:45 PM #26602返信が含まれるトピック: 追尾型バナー設置機能がほしい
特定の1ページのみ、または、特定のカテゴリ・タグのみに表示したい場合は、どのようにコードを記載すればキレイに動作するかご教授頂けますと幸いです。
例えばこんな感じでしょうか。
add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { // Footer CTA じゃないときは無視 if ( 'footer-cta' !== $slug ) { return $html; } // 以下、Footer CTA の場合 // Post ID が 5 の固定ページの場合は表示 if ( is_page( 5 ) { return $html; } // カテゴリー ID が 6 のカテゴリーページの場合は表示 if ( is_page( 5 ) { return $return; } // それ以外の場合は表示しない return; }, 10, 2 );
下記のページのその他の条件分岐タグがまとめてあるので、いろいろ試してみてください!
カスタマイザーで px 数を入力させる形になっていると、とても使いやすいと思います!
こちら実装できそうか調査すすめますね。
♥ 0Who liked: No user2019年8月31日 10:57 AM #26518返信が含まれるトピック: 追尾型バナー設置機能がほしい
1.ページごとに表示・非表示設定
ページごとに設定を設けるのは煩雑になりそうなので、GUI をつくるのはどうかなと思いますが、現状でもコードで出し分けは可能です。例えば下記のコードだと、ID が5の固定ページの場合は表示しない、となります。
add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { // Footer CTA じゃないときは無視 if ( 'footer-cta' !== $slug ) { return $html; } // 以下、Footer CTA の場合 // Post ID が 5 の固定ページの場合は何も表示しない if ( is_page( 5 ) ) { return; } return $html; }, 10, 2 );
2.追尾バナーを複数作成
これはちょっと現状の仕組みだと難しいですね…。
表示開始位置を遅らせる
これは、できそう、かつあったほうが良さそうなので実装したいなと思うのですが、どうやって指定させてら良いのか迷いますね…。「ページ内の最初のh2」としちゃうとh2が無いページだと CTA が表示されない、とかなっちゃうので、例えば1000pxスクロールしたら、とかならカスタマイザーで px 数を入力させる形にできるかなと。
♥ 0Who liked: No user2019年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; }
♥ 0Who liked: No user2019年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 );
♥ 0Who liked: No user2019年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 );
と言う感じで、こちらも分岐でそれぞれの置換をやる形でどうでしょうか?
または分岐で読み込むテンプレートを変更するのも良いと思います。♥ 0Who liked: No user2019年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
のみになってしまうっぽいって感じです。♥ 0Who liked: No user2019年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に代入されているので、ウィジェット時に渡されないのを注意すると言うのがちょっと使い方として…な所もあるので、もうちょいとこちらでも考えてみようかと思います。(そもそも使い方が悪い気もしてる)
一応、報告まで。♥ 0Who liked: No user2019年8月18日 11:08 AM #25421返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して
inc2734_
の方のフックでしたかー(汗)> 結局他のブロックも snow_monkey_template_part_render を通るわけではない
確かに…微妙と言うか色々面倒な事になりますね。了解です。
使いたい部分で
inc2734_wp_awesome_widgets_render_widget
で適度にカスタマイズをするか通すようにするとかの方が楽かもって感じに思えますし、ちょっとそれで試してみてカスタマイズで質問が出たらまた別トピックで聞きますー。♥ 0Who liked: No user2019年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
を通るわけではないので、ちょっと微妙かなと思います。♥ 0Who liked: No user2019年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
は書き換え用途ではなく、複数個フックした場合は最終のものだけが反映される形になって混乱するかなと思ったので、最初のだけ反映されるようにしています。なのでこれは基本エンドユーザーが使って、プラグインからは使わないほうがスマートかもしれませんね…。♥ 0Who liked: No user2019年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って書いても動くし)♥ 0Who liked: No user2019年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 );
♥ 1Who liked: No user2019年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 );
♥ 0Who liked: No user -
投稿者検索結果