サポート » バグ報告と提案 » アイキャッチ画像が取得できなくなった

  • 解決済 aki

    (@akistar02)


    $thumbnail_id = get_post_thumbnail_id($postID); //アタッチメントIDの取得
    var_dump(wp_get_attachment_image_src( $thumbnail_id, ‘300_image’ ));

    この記述で、今までは300_imageで指定していた画像を取得できたのですが、バージョンアップしてからフルサイズの画像しか取得できなくなりました。
    詳しい方に調査を依頼した結果、wp_get_attachment_image_srcなどのバグであるといわれました。

    他のアイキャッチを取得する関数でも同様でした。
    $thumbnail_id = get_post_thumbnail_id($postID); //アタッチメントIDの取得
    echo wp_get_attachment_image( $thumbnail_id, array( 120, 80 ) );
    としても、アイキャッチはフルサイズしか取得できませんでした。

    テーマは自作なので、バージョンアップ作業でこうなったと推測しています。

    バグかと思いこちらに書き込みさせていただきました。

    よろしくお願いいたします。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • こんにちは

    get_the_post_thumbnail()などでは、どうですか?

    
    $post_id = 38106;
    add_image_size('300_image',300,100);
    $thumbnail_id = get_post_thumbnail_id( $post_id ); //アタッチメントIDの取得
    var_dump(wp_get_attachment_image_src( $thumbnail_id, '300_image' ));
    echo '<hr>';
    var_dump( esc_html( get_the_post_thumbnail( $post_id , '300_image', array( "style" => "vertical-align:middle;", "alt" => null ) ) ) );
    
    トピック投稿者 aki

    (@akistar02)

    ありがとうございます。
    試してみたのですが駄目でした。

    
    array(4) {
    [0]=>
    string(76) "https://ドメイン.com/wp-content/uploads/フォルダ名/mkgkgphrop.jpg"
    [1]=>
    int(1)
    [2]=>
    int(1)
    [3]=>
    bool(false)
    }
    <hr>
    string(295) "<img width="1" height="1" src="https://ドメイン.com/wp-content/uploads/フォルダ名/mkgkgphrop.jpg" class="attachment-post-thumb-medium_pc size-post-thumb-medium_pc wp-post-image" alt="" style="vertical-align:middle;" />" 
    

    このようになります。

    バージョンアップは気軽にしては駄目ですね・・・

    そうですか、サイズとかが、取得できていないですね。

    こちらでは、以下の幼根結果でした

    コードは、functions.phpの最初にコピペで、

    たまたま、今日インストールしたワードプレスの、hello world ページのアイキャッチを指定した状態です。

    
    array(4) {
      [0]=>
      string(64) "http://example.com/wp/wp-content/uploads/2016/10/bouquet.jpg"
      [1]=>
      int(160)
      [2]=>
      int(100)
      [3]=>
      bool(false)
    }
    <hr>string(723) "<img width=&quot;160&quot; height=&quot;100&quot; src=&quot;http://example.com/wp/wp-content/uploads/2016/10/bouquet.jpg&quot; class=&quot;attachment-300_image size-300_image wp-post-image&quot; alt=&quot;&quot; style=&quot;vertical-align:middle;&quot; srcset=&quot;http://example.com/wp/wp-content/uploads/2016/10/bouquet.jpg 1920w, http://example.com/wp/wp-content/uploads/2016/10/bouquet-300x188.jpg 300w, http://example.com/wp/wp-content/uploads/2016/10/bouquet-768x481.jpg 768w, http://example.com/wp/wp-content/uploads/2016/10/bouquet-1024x642.jpg 1024w, http://example.com/wp/wp-content/uploads/2016/10/bouquet-192x120.jpg 192w&quot; sizes=&quot;(max-width: 160px) 100vw, 160px&quot; />"
    
    • この返信は7年、 6ヶ月前にnobitaが編集しました。
    • この返信は7年、 6ヶ月前にnobitaが編集しました。
    トピック投稿者 aki

    (@akistar02)

    サイズも取れてないしそもそもURLが求めているものではなくフルサイズのものが出るんですよね・・・
    アイキャッチのサイズ情報ってDBに保存されているのでしょうか・・・

    add_image_size( '300_image', 幅, 高さ ); のコードが実行されるタイミングは正しいでしょうか。

    テーマ Twenty Sixteen の子テーマで検証すると、add_image_size() をアクション ‘after_setup_theme’ から呼び出した場合は指定サイズの画像のパスが取得できました。@nobita さんの検証コードを使いました。

    参考(User Contributed Notes の最初に出てきます):
    https://developer.wordpress.org/reference/functions/add_image_size/#comment-296

    • この返信は7年、 6ヶ月前にgblsmが編集しました。
    • この返信は7年、 6ヶ月前にgblsmが編集しました。
    • この返信は7年、 6ヶ月前にgblsmが編集しました。
    トピック投稿者 aki

    (@akistar02)

    add_image_sizeはfunctions.phpの一番最初に定義してあります。
    おかしいでしょうか?

    今までは普通に表示できていました。

    また、当たり前ですが新規記事のアイキャッチは問題なくサイズが取得できます。

    原因はわかりませんが、アイキャッチ画像の再生成を試してはどうでしょう。フルバックアップを取ってから、例えばこのプラグインで。
    https://ja.wordpress.org/plugins/regenerate-thumbnails/

    トピック投稿者 aki

    (@akistar02)

    それが記事数が多すぎて駄目なんです・・・
    重くなってしまって実用的な手段ではないんですよ。

    数万記事あって1記事10種類のサムネイルがあるんです・・・

    トピック投稿者 aki

    (@akistar02)

    なので超軽量で行う方法を探しているのですが、

    
    $imgpath = get_attached_file( $attachment_id );
    $metadata = wp_generate_attachment_metadata( $attachment_id, $imgpath );
    if (!empty( $metadata ) && ! is_wp_error( $metadata ) ) {
        wp_update_attachment_metadata( $attachment_id, $metadata );
    }
    

    これとかも重過ぎてサイトが落ちます。
    何か良い手段ないかな・・・

    トピック投稿者 aki

    (@akistar02)

    解決はしなかったのですがこれ以上は進展が無いと思うので解決済みにしてクローズします。
    ありがとうございました。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「アイキャッチ画像が取得できなくなった」には新たに返信することはできません。