web-dev-qa-db-ja.com

Wordpressは注目の画像を自動トリミングできない

Functions.phpファイルに2つのトリミングサイズを設定しました。

// Setup Post Thumbnails
// -----------------------------------------------
add_theme_support('post-thumbnails');
add_image_size('imagePost-thumb', 970, 9999,false);
add_image_size('better-thumb', 200, 9999, false);

それから適切なループで、投稿タイプに基づいてサムネイルの1つを引っ張ります。

<?php if ( has_post_thumbnail() ): ?>
     <?php $size = (get_post_type() == 'imagepost') ? 'imagePost-thumb' : 'better-thumb'; ?>
     <?php get_better_post_thumbnail($size); ?>
<?php endif; ?>

Get better_post_thumbnail()は、画像とキャプションを取得するために私が書いた関数です。その中で私はthe_post_thumbnailを呼び出して画像を表示します。これがその機能です。

function get_better_post_thumbnail($size) {
    $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full');
    echo '<div class="thumbnail">';
    echo '<a href="' . $thumbnail_src[0] .'">';
      the_post_thumbnail($size);
    echo '</a>';
    if( get_post( get_post_thumbnail_id() )->post_excerpt )
        echo '<p class="wp-caption-text">' . get_post( get_post_thumbnail_id() )->post_excerpt . '</p>';
    echo '</div>';
}

これは私のテストサーバーではとてもうまくいきます。唯一の問題は、ライブサーバーにプッシュすると、クロップがうまくいかないことです。私たちのテーマはそれらをスタイルするので画像は正しいサイズとして表示されますが、それらはフルサイズで読み込まれています。

@ MathSmithの提案に従って、ライブサーバーをチェックして、さまざまな画像サイズが作成されているかどうかを確認しました。テストサーバーにはさまざまなファイルサイズがあり、ライブサーバーにはフルサイズしかありません。

それが400×400より大きく表示されることが決してないとき、我々は1024×1024の画像をロードしたくありません。もちろん、私は写真を手でトリミングすることもできますが、私のブロガーはすべて「技術」でより困難な時間を過ごすスペシャリストであり、自動的に行われる必要があります。

私たちの開発とライブの設定はライブサーバー上のw3 Total Cacheプラグインを除いて同じですが、私はそれを無効にしてイメージをテストしました、同じ結果を得ました。

何か案は?

1
Joshua Dance

理解した!私たちのライブサーバーにはGd Image Libraryがありませんでした。何らかの理由で、サーバーのインスタンス化に使用したパッケージに含まれていませんでした。

Wordpressサポートフォーラムの this thread にGd l​​ibに関する情報があります。それは3歳でしたが、行方不明の図書館を指していました。

テーマ関数ファイルを使用してサイズ変更をしていると思っていたので、サムネイルサイズのセレクタがグレーアウトされていることに気づいたことはありません。

@MathSmithと@Wyckに感謝します

1
Joshua Dance