フォーラムへの返信
-
投稿者投稿
-
2019年3月8日 11:09 PM 返信先: snow_monkey_template_part_rootとsnow_monkey_template_part_root_hierarchyについて #11648
修正いただき、ありがとうございます。
2つ同じパスを追加しても、1つになっているのを確認できました!♥ 0いいねをした人: 居ません2019年3月7日 11:21 AM 返信先: snow_monkey_template_part_rootとsnow_monkey_template_part_root_hierarchyについて #11527ご返信有難うございます。
$hierarchyを追加する形で、ビューファイルなどがあれば、それを見る、なければ次の$hierarchyのパスを見ていくって訳ですね。
そう言うことは、配列の最初の方がrootの優先度は高く見られるって事で良いでしょうか?
また、追加した後には、array_uniqueでパスの重複を排除した方が、余計な重複も減らせそうな感じがしますので、array_uniqueを入れて使うようにしてみます!snow_monkey_template_part_root はもう非推奨でも良いのではと思うのですが、すでに使っている方もいると思うので残しています。
思ったのですが、優先度が配列の最初が高い順であれば、$hierarchyの最初に値を入れるようにすればどうでしょうか?
ちょっとおかしくなりますか?♥ 0いいねをした人: 居ませんそもそもtemplate_partsのフックしたhtmlって複数のプラグインで結果を共有して置換出来ない
後から優先度の問題だったことに気づきまして、複数のプラグインでも結果を共有した形で置換出来ました。
上書きする際は優先度を9999など高くして一番最初に上書きさせる、カスタマイザーなどの場合や置換の場合など10より低くしたりする事で、先にSnow Monkeyが読み込んでいるフック処理などを実行させるなどする事で正しく反映が出来ました。
こちら、多数のプラグインで結果を上書きできるのを確認できましたので、こちらの問題はスルーしてください。。。また5.3.0からのsnow_monkey_template_part_root_hierarchyフックの追加、ありがとうございます。
そのフックと、検索ボックスのテンプレートパーツとして呼び出すアップデートとカスタム投稿ではtemplates/view/content-XXX.phpが呼び出される仕様などから、
template_partsにプラグインからもっと上手くフックを使って色々出来ないかとか試したい事も増えましたので、
色々と試したいと思います。試した結果などは、今後何らかの形でお伝えできればと思います。ほぼ解決できたのではないかと思えるので、一度このトピックを閉じさせていただきます。
♥ 0いいねをした人: 居ません5.3.0で色々追加されたフックやヘッダーコンテンツを使う事で、色々と可能になった事が増えたことを実感できました。
トピックの題とは異なってしまいましたが、今回も様々なサポートをしていただき、感謝です!
またフックなどの件で疑問などあれば、別トピック立てるかもしれませんが、よろしくお願いしますm(_ _)m♥ 0いいねをした人: 居ませんお早い修正ありがとうございます!
♥ 0いいねをした人: 居ません勝手ながら、補足させていただきます。
・SnowMonkeyBlocksが使える
Gutenbergエディタを有効にする為に、参考記事の通り、
'show_in_rest' => true,
を追加しましょう。
最新の英語の方の公式リファレンスでは書いてますが、日本語のサイトだと書いてないのが多いので(^^;参考記事:
♥ 0いいねをした人: 居ませんお知らせバーの前だと、 .l-contents の先頭部分に snow_monkey_prepend_contents とかつくると良さそうですかね。
お知らせバーの後ろはページヘッダーとかパンくずとかとの兼ね合いで…凄く解りやすいフックですね。お願いできますか?
子テーマでちょっとデザインを試してみたのですが、お知らせバーの前だとあまり変なことをしない限りはお知らせバーが突然出て浮いた感じにならず、お知らせバーがより目立って良いかもです!
後ろだとトップ画面以外に使用した場合にはアイキャッチとかの締まった感じが無くなって微妙になってしまいますね…。.l-footer の内側に、 snow_monkey_prepend_footer 、 snow_monkey_append_footer を追加しましょうかね。
.l-footer の内側であれば、ソーシャルナビの前と後ろと言った所などでしょうか?
メニューの左右は HTML の構造的にちょっと難しい気がします…。
あ、メニューの左右と言うのがちょっと伝わっていないかもです…<div class="c-row__col c-row__col--1-6 u-hidden-lg-up"> <div class="u-pull-right">...</div> <div class="u-pull-right">メニューの左に追加</div>
とかかな…と思いましたが、これもHTMLの構造的にややおかしくなりそうな難しい感じですね。
一度、HTML構造も見ながらこちらでも整理してみます。
♥ 0いいねをした人: 居ません確認が遅れまして、申し訳ありません。
下部のノッチにも、きちんと重ならずに表示されてました!
ノッチに触れるとブラウザが戻ってしまう機種の煩わしさが減って快適に正しくメニュー先へ行くことが出来ています。
当トピックでも度々の報告に対して対応いただき、ありがとうございました。♥ 0いいねをした人: 居ませんご返信ありがとうございます。理解できました。
User Role Editorの方も使ってみます。♥ 0いいねをした人: 居ませんご返信有難うございます。
差し替えについては snow_monkey_layout 、 snow_monkey_view フックでできます
そのフックを含めて、もう少しシステム面で使い道などまだ色々と考えているところです。上手くまとまりましたら、共有するようにします。
仕様の想定やその他の部分で理解も深まり、トピックの題についての理解としても
解決致しましたので、トピックを閉じさせていただきます。
ありがとうございました。♥ 0いいねをした人: 居ませんHelper::get_template_part や get_template_part() で呼び出すのはテンプレートパーツを想定
その想定通りに使用していませんでした。ViewやLayoutを変更するのが想定外という認識で考えた場合は、現状のままで問題ないと思います。
通常の場合は、ほとんど書き換えることは無いと思いますが、レイアウトやビューを変更する場合は
子テーマで行うと言う形でしょうか?♥ 0いいねをした人: 居ません元々はコンテンツを追加する要素として存在してた訳じゃないんですね(汗
例えばなのですが、
GDPRを既存の海外製プラグインで追加しようとした際の問題として、
出したい位置にショートコードでGDPRを追加するのがほとんどなのですが、
Snow Monkeyの場合は幾つかのlayoutファイルを変えないと全てのページにGDPRを挟めなかった問題がありました。
その為、snow_monkey_prepend_bodyで入れてみたところ、
そのままショートコードを入れただけの場合だと上部のメニューがとんでもないところに表示されたりするGDPRプラグインもありました。snow_monkey_prepend_bodyとは別にお知らせバーの前や後にコンテンツ表示向けのフックを追加していただければ、メニューに邪魔される事なくCSSの上書きなども出来ますので、コンテンツ表示用として使用するのが楽になる感じです。
また、フッターの後にフッターナビ前にも同じように追加していただければ、下部固定のGDPR等を出すのに対してかなり楽になる印象です。また、drawer-navのすぐ左やメニューのすぐ横に配置できるようなフックがあれば便利と思っています。
ナビゲーションバーに、メニュー以外の通知アイコン等の仕組みを簡単に使用できるようにするフックという事です。
星を押すとサイトをお気に入りに入れれたり…ってやつです。
または、ショッピングサイトでのSnow Monkeyを想定した場合、カートアイコン+カートに追加されているアイテム数表示など、既存のメニュー外の動きをメニュー横などに表示させるのにも便利ではないかと思っています。って、これって要望フォーラムの方に書いた方が良かったですね……
♥ 0いいねをした人: 居ませんコアの get_template_part() を使うのはどうでしょう?
そういうことをしないといけないシチュエーションが思い浮かばない確かに、コアのget_template_part()を使うと、思い浮かばなかったです……
ただ、一つ思ったのですが…
コアのget_template_part()を使った場合は、my_snow_monkeyで、templateのrootをフックで変更して、置換した場合、別のプラグインは、my_snow_monkeyで変更されたtemplateファイルを取れないのかなと。
多分ですが、別のプラグインでは、コアのget_template_partを使ってしまうと問題が起こるんじゃないかなと思っています。
my_snow_monkey以外の他のプラグインでは、コアのget_template_partを使ってしまうと、テーマ側のファイルを見てしまうので、my_snow_monkeyに置かれているtemplateのファイルを参照しない…と言うことにならないでしょうか?
それがHelperを使ったget_template_partだとrootが設定されているので、他のプラグインでもmy_snow_monkeyのtemplate_partsを見ますし、それが無い場合は最終的にはテーマ側のtemplate_partsを参照するので、正しくmy_snow_monkeyの上書き結果を他のプラグインも見れるんじゃと思ってます。
単純にHelper::get_template_part()で呼び出すと、無限ループするtemplate_partsもあると言うだけで全てが使えない訳でもないですが、ちょっと注意が必要かなと言う感じです。Helper::get_template_part()で呼び出した場合でも、その呼び出しているフックを無限ループにならないように、removeしてあげれば使えますし、実際には今のままでも問題はないです。ただ、そう考えながら、今、フォーラムに書いてて気づいたのですが、
そもそもtemplate_partsのフックしたhtmlって複数のプラグインで結果を共有して置換出来ないんじゃ……と。
my_snow_monkeyでフックしてAをBに置換とした場合、別のプラグインで優先度を下げてそのフックのCをDに置換しても、置換後のhtmlを取れていないので、AをBに置換した結果ってget_template_part()で取得したhtmlで反映できないんじゃ…と今、思いました。
2つ以上のプラグインで置換した場合の結果って、最終的にフックを掛けたCをDにすると言う結果だけが表示されるのかなって。これも、もともと「子テーマの代替」で考えていたキタジマさんの設計思想をかなり無視して難しく勝手に考えている事でもあります。申し訳ありません。
これもまた想定外のことを難しく勝手に考えてしまっているだけかもしれません…。しかし、フックで上書きを使い、2つ以上のプラグインで拡張させてみると言う考えはまだ捨てず、上手くプラグイン同士が両立出来る仕組みをもう少し試行錯誤してみたいとも思っています。
♥ 0いいねをした人: 居ません申し訳ないですが、再度トピックを開きます。
padding-bottomが設定されていない為、下にノッチのある端末やiPhone XSだと最下部のメニューが角丸に隠れて見えない時が発生している問題が生じております。
footer-sticky-navで正しく上がっていますので、同じスタイルをドロワーメニューのpadding-bottomでも対応していただければ回避できるのではないかと思います。♥ 0いいねをした人: 居ません具体的に想像できなかったのですが、確かに remove_filter() は無名関数消せないですね…。
template-parts/common/infobarだと、その中で呼ばれているので、こんな感じでしょうか?
add_filter( 'snow_monkey_get_template_part_template-parts/common/infobar', function( $name, $vars ) { ob_start(); \Framework\Helper::get_template_part( 'template-parts/common/infobar' ); // このフックが呼ばれ続けるので無限ループに $html = ob_get_clean(); echo $html; }, 10, 2 );
♥ 0いいねをした人: 居ません -
投稿者投稿