2016-09-15 9 views
0

私は複数のカスタムサムネイルサイズを持っています。例えばワードプレスフォールバックサイズによるサムネイル画像

<?php 
add_image_size('sizeOne', 300, 100); 
add_image_size('sizeTwo', 600, 200); 
?> 

私は機能してサムネイルを表示:

<?php the_post_thumbnail('sizeOne'); ?> 

そして、私が管理領域にカスタムサムネイルを設定していない場合は画像が(存在しない場合)、代替画像はdefault-thumbnail.pngになります。このプロセスは、functions.phpこのコードにより行われる。

<?php 
function filter_post_thumbnail_html($html) { 
    // If there is no post thumbnail, 
    // Return a default image 
    if ('' == $html) { 
     return '<img src="' . get_template_directory_uri() . '/images/default-thumbnail.png" width="300" height="100" />'; 
    } 
    // Else, return the post thumbnail 
    return $html; 
} 
add_filter('post_thumbnail_html', 'filter_post_thumbnail_html'); 
?> 

問題は、フォールバックイメージは、すべてのサムネイルサイズについて同じであることあります。 300x100だから、sizeOneには完璧ですが、sizeTwoでは小さすぎます。

質問されたサムネイルがsizeOneまたはsizeTwoの場合、どのように「確認」して正しい代替画像を返すことができますか?

-

シモンズ:私はこれを行うために他の方法、を知っているが、それは私が欲しいものではありません。

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail('sizeOne'); 
    } else { 
?> 
    <img src="<?php bloginfo('template_directory'); ?>/images/default-thumbnail.jpg" width="300" height="100" /> 
<?php 
} ?> 

答えて

1

filterの追加パラメータを使用できます。

<?php 
function filter_post_thumbnail_html($html, $post_id, $post_thumbnail_id, $size) { 
    // If there is no post thumbnail, 
    // Return a default image 
    if ('' == $html) { 
     if ('sizeTwo' == $size) { 
      return '<img src="' . get_template_directory_uri() . '/images/default-thumbnail2.png" width="600" height="200" />'; 
     } else { 
      return '<img src="' . get_template_directory_uri() . '/images/default-thumbnail.png" width="300" height="100" />'; 
     } 

    } 
    // Else, return the post thumbnail 
    return $html; 
} 
add_filter('post_thumbnail_html', 'filter_post_thumbnail_html', 10, 4); 
+0

これは正しいです、Jrod。最後に '10、4'を説明できますか?あなたの時間をありがとう。 – Hugo

+1

@Hugo確かに。 10は、フィルタが実行されるべき優先順位です。 10はフィルタ/アクションのデフォルトです。 4は、関数が受け入れるパラメータの数です。この特定のフィルタは5つのパラメータを渡しますが、すべてのパラメータを使用する必要はなく、この場合は4つしか使用していません。 – Jrod

関連する問題