フォーラムへの返信
-
投稿者投稿
-
こちらでも現象確認できました。情報ありがとうございます!JavaScript のエラーがでて処理が止まってしまうみたいなので、アップデートで修正入れます。修正できたらまた書き込みます!
♥ 0いいねをした人: 居ません下記教えてください!
– 自動表示ではなく、普通に目次ブロックを設置した場合、その設置した目次は表示されますか?
– 現象が確認できるページの URL をここに記載してもらうことは可能ですか?♥ 0いいねをした人: 居ませんMy Snow Monkey プラグインか、子テーマの
functions.php
にコードを追加することで実現できるかなと思います。### ウィジェットエリアを定義
add_action( 'widgets_init', function() { register_sidebar( array( 'name' => '個別投稿の上部のサイドバー', 'id' => 'my-single-top-sidebar', // ウィジェットエリアの名前 'before_widget' => '<div id="%1$s" class="c-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="c-widget__title">', 'after_title' => '</h2>', ) ); } );
### ウィジェットエリアを個別投稿に表示
add_action( 'snow_monkey_before_contents_inner', function() { // 個別投稿ではないときは何もしない if ( ! is_single() ) { return; } // my-single-top-sidebar ウィジェットエリアを表示 dynamic_sidebar( 'my-single-top-sidebar' ); } );
特にウィジェットエリアであることが必須ではなくて、ページヘッダーを表示したいだけということであれば、カスタマイザーの設定でページヘッダーを表示することはできます。
カスタマイザーを開いた状態で適当な個別投稿ページに移動して、カスタマイザー → デザイン → 投稿ページ設定 → アイキャッチ画像の位置で「ページヘッダー」を選択すると表示されるようになります。
標準のページヘッダーではなく、何らかのウィジェットでページヘッダー的なものを入れたいということであれば、独自にウィジェットエリアを追加する必要がありますね…。
♥ 0いいねをした人: 居ませんなぜ読み込みされないのか確認するため、ブラウザのデベロッパーツール → ネットワークタブで動画のレスポンスを確認してみたところ、206 というステータスが返ってきているようでした。詳しくないのでググってみたところ、Safari は大きな動画などを分割してから再生するための HTTP Range Request というものに対応させる必要があるらしいということがわかりました。
ただ、これの対応が Snow Monkey 側でできるものなのか、サーバー側でやらないといけないものなのか、それとも動画ファイルを何とかすればなんとかできるものなのかまではよくわかりませんでした…。
もし開発環境とか別のサーバーにアップした場合はちゃんと表示されるということであれば、サーバー側で対応が必要なものなのかもしれません。
♥ 0いいねをした人: 居ませんおそらく
と同じで、何かのスクリプトとアイコンを表示するライブラリ(FontAwesome)が干渉してしまっているのだと思うのですが、どれが干渉しているのかまでは突き止められませんでした。
もし FontAwesome のアイコンを独自には使っていない(Snow Monkey が勝手に表示するもの以外は使っていない)のであれば、カスタマイザー → ページ速度最適化 → 軽量な FontAwesome を使用する、を有効化することで解決するかもしれません。
♥ 0いいねをした人: 居ませんあ、条件分岐が抜けていました…。
is_single()
で条件分岐させてください。add_filter( 'snow_monkey_get_template_part_args_template-parts/common/page-header', function( $args ) { if ( ! is_single() ) { return $args; } $default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg'; $args['vars']['_image'] = '<img src="' . esc_url( $default_image_url ) . '" alt="' . esc_attr( get_the_title() ) . '">'; return $args; } );
画像が表示されないのは上記コードの中で指定している画像の URL が正しくないからなので、実際に表示させたい画像の URL になるように、コードを修正してみてください。
投稿一覧はそのままで詳細ページでの表示だけ、ということは、あくまで「その記事の装飾としての画像を変えたい」ということだと思ったので、そのやり方を考えてみました。
※
post_thumbnail_html
で詳細ページだけ表示を変える場合、OGP 画像や関連記事などに使用される画像も変わってしまう可能性があるのでそれ以外を使ったやり方にしてみました。「アイキャッチ画像の表示」の選択肢によって対応が変わるので、一応それぞれのパターンについて考えてみました。
### 「アイキャッチ画像の位置」が「ページヘッダー」のとき
// テンプレートパーツに画像の URL を差し替えるオプションがあるのでそれを使う。 add_filter( 'snow_monkey_get_template_part_args_template-parts/common/page-header', function( $args ) { $default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg'; $args['vars']['_image'] = '<img src="' . esc_url( $default_image_url ) . '" alt="' . esc_attr( get_the_title() ) . '">'; return $args; } );
### 「アイキャッチ画像の位置」が「コンテンツの上」のとき
// オプションは無いのでテンプレートパーツ自体を書き換える。 add_filter( 'snow_monkey_template_part_render_template-parts/content/eyecatch', function( $html ) { if ( ! $html ) { return $html; } $default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg'; $default_image = ob_start(); ?> <div class="c-eyecatch"> <img src="<?php echo esc_url( $default_image_url ); ?>" alt="<?php echo esc_attr( get_the_title() ); ?>"> </div> <?php return ob_get_clean(); } );
-
投稿者投稿