特色图像的备用图像

时间:2018-07-03 作者:tom84

如果没有设置特征图像,我想使用回退图像。我正在使用以下代码,但图像未显示。。。

<?php if ( has_post_thumbnail()) : // Check if thumbnail exists ?>
    <?php the_post_thumbnail( array(334, 259) ); // Declare pixel size you need inside the array ?>
<?php else : // No thumbnail? Showing default is better UX than no image. ?>
    <img src="/wp/wp-content/themes/klicknet-theme/images/testbild.png" 
alt="testbild" width="334" height="259" title="Bild: <?php the_title(); ?>"> 
<?php endif; ?>
知道为什么吗?

2 个回复
SO网友:Krzysiek Dróżdż

您的代码看起来不错,应该可以正常工作。但有些事情你可以(也应该)解决。

1。您没有为您的回退映像使用绝对URL/wp/wp-content/themes/klicknet-theme/images/testbild.png 作为图像的src。如果您在其中使用WP函数,将会更好、更安全。例如,像这样:

<img src="<?php bloginfo(\'template_url\'); ?>/images/testbild.png">

2。在您使用的回退图像中,您没有正确地转义标题the_title() 在标题属性中。但你不能把它作为一个属性来逃避。如果标题包含" 字符,它将破坏您的HTML。另一个问题是标题可能包含HTML标记,它们将打印在属性中。

如果要使用title作为属性,则应使用the_title_attribute 功能。因此,该行的固定版本可以如下所示:

<img src="<?php bloginfo(\'template_url\'); ?>/images/testbild.png" alt="testbild" width="334" height="259" title="<?php the_title_attribute( array( \'before\' => \'Bild: \', \'after\' => \'\' ) ); ?>"> 

SO网友:jave.web

您可以添加过滤器以提供自定义<img> 缺少缩略图时使用html。

Note, 虽然你don\'t have to anymore 这仍然允许您使用has_post_thumbnail() 如有必要,因为has_post_thumbnail() 基于get_post_thumbnail_id(), 这意味着它会检查该帖子是否真的设置了任何图像。

functions.php

// fallback thumbnail
// note, that this still allows you to check has_post_thumbnail() !
// (since it correctly checks if ID is set, not the actual output :))
add_filter(\'post_thumbnail_html\', function ($html) {
  if (! empty($html)) return $html; // FILTER ! MUST RETURN!
  return \'<img src="\' . get_stylesheet_directory_uri() . \'/images/fallback.png\' . \'">\';
}, 999, 1);
需要明确的是,此代码假设您有images 主题中的目录fallback.png 在里面:)
如果需要子主题,但回退图像应来自父主题,则替换get_stylesheet_directory_uri() 具有get_template_directory_uri()

任何模板代码:

<?php the_post_thumbnail( ... ); ?>

结束

相关推荐

如何在ACF中使用single.php创建、阅读和编辑自定义帖子

我有一个WordPress自定义帖子类型product 我现在正在开发用于创建、阅读和编辑这些帖子的前端表单(我正在使用ACF)。我只想用single-product.php 为此目的!有人能在这方面帮助我吗?我已经通过添加基本功能来查看(主机/产品/产品)和编辑帖子(主机/产品/产品?操作=编辑)?操作=编辑链接并显示特定acf_form() 如果$_GET[\"action\"] 是edit 但我也想用这个页面creating new posts!我试图添加new_product 在URL上类似hos