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

  • 解決済 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 ) );
    としても、アイキャッチはフルサイズしか取得できませんでした。

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

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

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

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

    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 ) ) ) );
    

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

    
    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;" />" 
    

    このようになります。

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

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

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

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

    参考(User Contributed Notes の最初に出てきます):

    add_image_size()

    • この返信は5 ヶ月、 3 週間前に gblsm さんが編集しました。
    • この返信は5 ヶ月、 3 週間前に gblsm さんが編集しました。
    • この返信は5 ヶ月、 3 週間前に gblsm さんが編集しました。

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

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

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

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

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

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

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

    
    $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)

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

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • このトピックに返信するにはログインが必要です。