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
} ?>
これは正しいです、Jrod。最後に '10、4'を説明できますか?あなたの時間をありがとう。 – Hugo
@Hugo確かに。 10は、フィルタが実行されるべき優先順位です。 10はフィルタ/アクションのデフォルトです。 4は、関数が受け入れるパラメータの数です。この特定のフィルタは5つのパラメータを渡しますが、すべてのパラメータを使用する必要はなく、この場合は4つしか使用していません。 – Jrod