フォーラムへの返信
-
投稿者投稿
-
my-snow-monkey プラグイン、もしくは子テーマの functions.php に、条件を変更するコードを書くことで変更できます。
こんな感じでどうでしょう?
add_filter( 'snow_monkey_related_posts_args', function( $args ) { if ( ! isset( $args['post_type'] ) || 'post' !== $args['post_type'] ) { return $args; } $category_ids = wp_get_object_terms( get_the_ID(), 'category', [ 'fields' => 'ids' ] ); $tax_query[] = [ 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => $category_ids, 'operator' => 'IN', ]; $args['tax_query'] = $tax_query; return $args; } );
♥ 0Who liked: No userページヘッダーは、
・PC 縦最大500pxの16:9
・スマホ 縦最大300pxの9:16ページヘッダーは縦の最大値しか制限がないので、特に16:9でなくても良いかもです。
あ、下記のサイトでは文字入りのアイキャッチ画像を使われているので参考になるかもしれません。
♥ 0Who liked: No user本来
remove_action( 'inc2734_view_controller_get_template_part_template-parts/discussion/comment', '__return_true' );
の部分(というかこのフックを外すという処理自体)はユーザーが知る必要がない部分なので、こういう処理があるということを想像しながらコードを書かせること自体が NG だと思うのです。これは内部処理の都合で必要なだけなので、もしかしたら将来的になくなる処理かもしれないですし。なのでここは自動でやっちゃうのが適切だと思います。自動的にだけでは無い理由として、同一のテンプレート以外であっても、読み込む前にremoveする事をしたい時がある為です。
ちょっとどういう処理を想定しているのかが想像できず申し訳ないのですが、別な方法で対応できる or するべきな気がします。
♥ 0Who liked: No userあと、
inc2734_view_controller_template_part_render
という最終出力を書き換えられるフックがあるので、前後に要素を足したいだけならそれを使うのが良いかもです(これも、ラップしてsnow_monkey_template_part_render
フックを作ったほうが統一性的に良さそうですが)。とりえあず上記はやります!
トピックとは別の事なので、アイデアを思いついたらまた別トピックを立てるかコミュニティの方で書きますね。
もし思いついたときはぜひ。助かります!
♥ 0Who liked: No userそうか、フックの状況をみて 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
フックを作ったほうが統一性的に良さそうですが)。♥ 0Who liked: No userあーそうかわかりました。
ヘッダーコンテンツは
get_template_part( '.../content', 'lg' )
、get_template_part( '.../content', 'sm' )
で呼び出し、それぞれの内部でget_template_part( '.../content' )
が呼び出されるという仕組みなのですが、snow_monkey_get_template_part_template-parts/header/content
だと第2引数関係なく全部書き変わっちゃうので、コールバック関数の中で'' === $name
みたいにして分岐させないとダメですね。僕もよくわかってませんでした…。ということでトピック閉じます!
♥ 0Who liked: No userあーそうですね。
snow_monkey_get_template_part_xxx
をremove_filter
することで、2回目以降のsnow_monkey_get_template_part_xxx
が呼ばれず表示されない、となりますね…。一応下記のコードで動作するようになると思います。
add_filter( 'snow_monkey_get_template_part_template-parts/discussion/comment', 'customize_comment_area', 10, 2 ); function customize_comment_area( $_name, $_vars ) { $is_removed = remove_filter( 'snow_monkey_get_template_part_template-parts/discussion/comment', 'customize_comment_area', 10, 2 ); if ( $is_removed ) { remove_action( 'inc2734_view_controller_get_template_part_template-parts/discussion/comment', '__return_true' ); ob_start(); \Framework\Helper::get_template_part( 'template-parts/discussion/comment', null, $_vars ); $_html = ob_get_clean(); // いいね!ボタンなどの各コメントのコミュニティ化プラグインの設定と置換 echo $_html; add_filter( 'snow_monkey_get_template_part_template-parts/discussion/comment', 'customize_comment_area', 10, 2 ); } }
が、内部の内部まで考慮して記述することになり、Snow Monkey のアップデートによる変更にめちゃめちゃ弱いと思います。このような使い方は結構想定されることだと思うので、もうちょっと
Helper::get_template_part()
の処理なりフックなりを整理したほうが良いかもですね…。パッと思いついたのだと、フックを有効にするかどうかを指定できる第4引数を追加するとか、
snow_monkey_get_template_part_xxx
フックをアクションフックじゃなくてフィルターフックにするとか…。うーん、どっちも微妙な気はするのでもうちょっと考えてみます。なにか良いアイデアがあればぜひコメントくださいまし…。♥ 0Who liked: No userおぉ!書こうと思ったら!
どちらでも動作すると思いますが、僕はフォーム用のフックでの変更方法を。
add_filter( 'get_search_form', function( $form ) { $form = str_replace( 'placeholder="検索 …"', 'placeholder="あいうえお"', $form ); return $form; } );
ちなみに、Gutenberg の検索ブロックのコードをみたところ、どうも
get_search_form
を使わずにベタに記述してあるっぽいので、ブロックの方を変更するのは難しそうです(もしかしたらもっと上位にフックがあるのかもしれませんが、そこまではわからず)。♥ 0Who liked: No user公式的には、
\Framework\Helper::get_template_part
の第3引数で指定された値を、読み込まれたテンプレートで取得するために使用する、ために用意されたヘルパーになります(なので多分想定されていることはあっているかと)。エラーが出るのは多分使い方の問題かなと思います。上のコードでいうと、
Helper::get_template_part
の第3引数に渡せるのは配列だけなので、ob_start(); \Framework\Helper::get_template_part( '用意されている、または独自のテンプレート', null, [ '_hoge' => 'hoge' ] ); $_html = ob_get_clean();
として、呼び出された側で
\Framework\Helper::get_var( $_hoge, 'default value' );
として受け取る、という感じになります。
♥ 0Who liked: No user現状、特に用意はしていないですね…。お急ぎなら下記のページのコードを my-snow-monkey プラグインなり子テーマの functions.php なりに書き込めば実現できるかと。
良いアイデアだと思いますので、Snow Monkey Blocks に検索ボックスブロックを追加するようにしよう!と思ったのですが、Gutenberg 5.3 をみると実装されてるみたいですね。WordPress 5.2 とかで入ってくるかもしれないので、とりあえず Snow Monkey 側でどうこうするのは保留としておきます!
♥ 0Who liked: No user「出力」というのが画面への表示ではなく、HTML としての出力ということを指すのでしたら、それは仕様となります。
PC とモバイルでどうしても HTML の共通化をおこなうことができなかったので、HTML 的には PC 用とモバイル用の2箇所にヘッダーコンテンツを出力し、
.p-header-content--lg
、.p-header-content--sm
という CSS でブラウザの横幅に応じて表示/非表示を切り替えています。画面上に両方共見えてしまうということであればバグですね…。
倉本さんのスクショをみると両方共でちゃってるようなのですが、設定の組み合わせなど教えてもらってもいいでしょうか…?
♥ 0Who liked: No userSnow Monkey のスライダー系ウィジェット&ブロック、アイキャッチ画像は、ぴっちりサイズ指定で画像表示することを想定していません。なので文字入りのバナー的な画像を表示したりするのはあまりおすすめできません。風景画像とかイメージ写真みたいなのを入れてもらうのが使い方的には多分ベストです。
という前提で、現状どういう表示をしているかを下記にまとめますね。
スライダー&ピックアップスライダー
基本的には 16:9 で表示されますが、スライダー内のコンテンツが隠れないように、内容量に応じて広がります。
ページヘッダー
- スマホ 縦最大300px
- タブレット 縦最大400px
- PC 縦最大500px
記事一覧画面のアイキャッチ画像
- 4:3 で表示されます。
こちらの”ただし全画面になる”、とは、こちらの事でしょうか?
いえ、レイアウトくずれとかじゃなくて、ほんとに動画だけの UI になる、ということです。iOS Safari がそういう仕様なのだと思います。
♥ 0Who liked: No useriPhone のシミュレーターで実験してみました。確かに動画ブロックは再生されなくなりますね。
YouTube のブロックでもやってみました。こっちは自動再生はできないものの、クリックしたら動画が再生されました(ただし全画面になる)。
スマホの動画の仕様を知らなかったため、セクション(背景動画あり)ブロックもスマホだと変な感じになっちゃいますね…。スマホだと背景動画系は画像におきかわるようにしたほうが良さそうです。
♥ 0Who liked: No user標準の動画ブロックですかね?
Snow Monkey 側では何も変更はいれていないので WordPress の仕様かな?と思うのですが、こっちでもみてみます。♥ 0Who liked: No user -
投稿者投稿