- このトピックには8件の返信、2人の参加者があり、最後に三浦裕により11時間、 13分前に更新されました。
-
投稿者投稿
-
2024年12月20日 1:25 AM #143276
【お使いの Snow Monkey のバージョン】26.0.3
【お使いの Snow Monkey Blocks のバージョン】21.0.7
【お使いの Snow Monkey Editor のバージョン】10.0.4
【お使いのブラウザ】os
【当該サイトのURL】### 実現したいこと
投稿のアイキャッチ画像で詳細ページのみ別の画像に変更したい
画像を指定するかデフォルト画像に変更したい
【希望表示】
投稿一覧などは設定したアイキャッチ画像表示
詳細ページのみ別の画像表示
【設定】
Custom Post Type UIで投稿
### 発生している問題
コードを追加しても変わらない
### 試したこと
コードを追加
function custom_replace_featured_image($html, $post_id, $post_thumbnail_id, $size, $attr) { // 詳細ページでのみ処理を実行 if (is_single() && in_the_loop() && is_main_query()) { // デフォルト画像のURLを指定 $default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg'; // デフォルト画像のパスを指定 // 新しい画像タグを生成 $html = '<img src="' . esc_url($default_image_url) . '" alt="' . esc_attr(get_the_title($post_id)) . '">'; } return $html; } add_filter('post_thumbnail_html', 'custom_replace_featured_image', 10, 5);
お忙しい中、申し訳ありませんがご教授の程よろしくお願いいたします。
♥ 0いいねをした人: 居ません2024年12月20日 1:28 AM #143277function custom_replace_featured_image($html, $post_id, $post_thumbnail_id, $size, $attr) { // 詳細ページでのみ処理を実行 if (is_single() && in_the_loop() && is_main_query()) { // デフォルト画像のURLを指定 $default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg'; // デフォルト画像のパスを指定 // 新しい画像タグを生成 $html = '<img src="' . esc_url($default_image_url) . '" alt="' . esc_attr(get_the_title($post_id)) . '">'; } return $html; } add_filter('post_thumbnail_html', 'custom_replace_featured_image', 10, 5);
2024年12月20日 12:13 PM #1432782024年12月20日 12:30 PM #143279投稿一覧はそのままで詳細ページでの表示だけ、ということは、あくまで「その記事の装飾としての画像を変えたい」ということだと思ったので、そのやり方を考えてみました。
※
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(); } );
2024年12月20日 2:58 PM #143287キタジマ 様
お世話になっております。
早速のご教授ありがとうございます。
おっしゃる通り「その記事の装飾としての画像を変えたい」です。
早速試してみましたが下記のように表示ができませんでした。
【現状】
固定ページまで反応してヘッダー画像が表示できなくなった
【要望】
社員紹介ページやお知らせなど投稿の詳細ページのみ適用したいです。
ページヘッダーの場合とページヘッダーの上にタイトルを表示の2パターン知りたいです。
お手数おかけいたしますが、何卒よろしくお願いいたします。
♥ 0いいねをした人: 居ません2024年12月20日 4:24 PM #143290あ、条件分岐が抜けていました…。
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 になるように、コードを修正してみてください。
2024年12月20日 9:11 PM #143298早速の修正ありがとうございます。
<img src="http://mitsudenshi.local/wp-content/themes/snow-monkey/wp-content/uploads/2024/12/XXXXX.jpeg" alt="画像">
リンク先が上記になっておりまして、管理画面のメディアに追加している為
/wp-content/uploads/2024/12/XXXXX.jpeg
にsrcを変更したいのですがどのように行えばよろしいでしょうか。ご教授よろしくお願いいたします。
♥ 0いいねをした人: 居ません2024年12月21日 12:17 PM #1433032024年12月21日 1:43 PM #143306 -
投稿者投稿
- トピック「投稿の詳細ページだけアイキャッチ画像を変更したい」には新しい返信をつけることはできません。