フォーラムへの返信
-
投稿者投稿
-
あ、条件分岐が抜けていました…。
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(); } );
ここのことですかね?
♥ 0いいねをした人: 居ませんインデントがなかったのでとりあえずインデントを入れていってみたところ、閉じミスが何箇所かありました。
また、シンタックスチェックしてみると、セミコロンの不足やメディアクエリの
and
の不足なども何箇所かあるようでした。top-mv〜
ではじまるところも、「top-mv
という「タグ」に対して」というセレクタになっているので、多分.top-mv〜
か#top-mv〜
になるのかなと思いました。あと、
/*スマホ*/ @media screen and (max-width: 640px) { ... }
とメディアクエリで囲われている中にも新たなメディアクエリが入れ子になっていて、これもちょっと効いているのか怪しいので確認されたほうが良いのかなと思いました。
その辺り全て修正して CSS を追加したら多分反映されるようになると思います!
こちらの環境では反映されているっぽく見えますね…。
.l-footer { background-color: #417fd0; color: #fff; }
としてみました。それでもダメなら
!important
を付けて詳細度を強めてみるとどうでしょうか?♥ 0いいねをした人: 居ません2024年12月13日 9:36 PM 返信先: Snow Monkey Archive Content 1.2.5を有効にすると管理画面のプラグインページ(/wp-admin/plugins.php)を開こうとするとエラーが出て開けない #143223Snow Monkey Archive Content で使っているアップデート用ライブラリ、というか Composer によるライブラリの仕様になるのかもですが、snow-monkey-design-skin-cupre の中にも同じライブラリが含まれていて、読み込み順などの都合でそちらのライブラリが参照されるものの、バージョンが古いためにエラーが発生した、という状況のように見えます。
snow-monkey-design-skin-cupre を一旦停止させてからアップデートできるか試してみてください。
その後、snow-monkey-design-skin-cupre のアップデート機能も継続的に使用しているのであれば、アップデート用のライブラリ(inc2734/wp-github-plugin-updater)を最新版にアップデートするか、アップデート機能は特に使っていないのであればライブラリを読み込まないように変更してみてください。
こんな感じのコードが snow-monkey-design-skin-cupre の中にあるのではないかと…
add_action( 'init', function () { new Updater( plugin_basename( __FILE__ ), 'inc2734', 'snow-monkey-design-skin-hakuji', array( 'homepage' => 'https://snow-monkey.2inc.org', ) ); } );
♥ 0いいねをした人: 居ません普通のリンク挙動とはちょっと変わってしまうのですが、スムーススクロール化すればヘッダーの高さを考慮して、重ならない位置でとまるようになります。
例
※右カラムの目次をクリックしてみてください。参考:
アイキャッチ画像のデータを取得する関数は他にもいくつかありますが、基本的にはどれもサイズ指定は必要みたいですね(デフォルトは
thumbnail
)。クローズお願いします!
♥ 0いいねをした人: 居ませんRSS の取得には、コアの関数である
fetch_feed()
を使用しています。fetch_feed()
は RSS の各投稿の情報を取得してきて、Snow Monkey はその各投稿の情報のdescription
を参照します。そして、description
がimg
要素から始まっている場合はそれをサムネイルとして使用します。なので単にアイキャッチ画像を設定しているだけでは表示されないと思うので、何か記事の先頭や抜粋にアイキャッチ画像が追加されるようなカスタマイズをされているのではなかと思うのですが、いかがでしょうか?—
RSS の取得側(サイトA)からは、RSS に無い情報は取得できないので、RSS を出力する側(サイトB)に手を入れて、description にデフォルトアイキャッチ画像を出力してみるとどうかなと。
// 生成した RSS はキャッシュされるので、テストしやすいようにキャッシュ時間を1秒に変更 add_filter( 'wp_feed_cache_transient_lifetime', function() { return 1; } ); // アイキャッチ画像が未設定の場合、デフォルトアイキャッチ画像を RSS の description の先頭に追加する add_filter( 'the_excerpt_rss', function( $excerpt ) { // アイキャッチが設定済みの場合は無視する if ( has_post_thumbnail() ) { return $excerpt; } // デフォルトアイキャッチ画像を取得 $default_thumbnail_id = get_theme_mod( 'default-thumbnail' ); $thumbnail = $default_thumbnail_id ? wp_get_attachment_image( $default_thumbnail_id, 'medium' ) : ''; // デフォルトアイキャッチ画像を RSS の各投稿の description の先頭に追加する return $thumbnail . $excerpt; }, 10, 2 );
ただ、こういうカスタマイズをすることを特に想定してはいないので、もしかしたらどこかに不具合や意図しない表示の影響がでてしまうかもしれません。そのときはまたどうするか検討が必要かなと思います。
♥ 0いいねをした人: 居ません -
投稿者投稿