我正在设置wordpresswebsite on my server now 并且在主页上有旋转图像,这很漂亮,但现在我想有一个条件标记,告诉wordpress如果不是主页,请使用每页的特色图像。
这是我在主页上放置的代码,用于显示来自iThemes的插件旋转横幅。com公司
<?php if (function_exists(\'dynamic_sidebar\') && dynamic_sidebar(\'banner-widget\')) : else : ?>
<p><img class="banner" src="<?php bloginfo(\'template_directory\') ?>/img/BANNER1-averylawoffice.jpg" alt="Banner 1"></p>
<?php endif; ?>
它工作得很好!我的widget已经准备好了,所有的图像都在那里,并且可以正常工作。现在我有了这段代码,我想把它放进if-else语句中,这样如果页面不是主页,就显示特色图像。
我不是程序员专家,为了得到这段代码,我四处寻找了很多,但是它不起作用,我只看到主页上有一个空白点,页面其余部分的图像都是应该的。
<?php if (is_home()) {
<?php if (function_exists(\'dynamic_sidebar\') && dynamic_sidebar(\'banner-widget\')) : else : ?>
<p><img class="banner" src="<?php bloginfo(\'template_directory\') ?>/img/banner.jpg" alt="Banner 1"></p>
<?php endif; ?>
} else { ?>
<div id="banner"><?php the_post_thumbnail( 863, 328 );?></div>
<?php } ?>
我做错了什么,是为了不得到我想要的效果?我知道这很简单,所以我不想用一个无用的插件来做这件事,因为它会很慢。
任何帮助或建议都会很好!
最合适的回答,由SO网友:mrwweb 整理而成
我认为您需要调整多个问题:
在第二个if
陈述那不应该在那里确保is_home()
是你想要的。如果您有一个静态首页(在设置>阅读中设置),那么您实际上需要is_front_page()
. 想想is_home()
像is_blog()
(要明确,is_blog()
不存在)如果你想the_post_thumbnail()
宽度和高度,它需要在一个数组中。另一个选项是在函数中定义图像大小。php,然后在那里调用它
我认为只要始终将横幅包装在#banner div中,您的HTML就会更干净。为了确保您始终有一个图像,我会检查以确保您有一个帖子缩略图集,并确保您有回退所有这些建议都包含在代码中,下面是我的建议:
在您的功能中。php添加:
add_image_size( \'banner\', 863, 328, true );
无论您的横幅片段在哪里:
<!-- Let\'s always wrap our banner in the banner div for easy styling -->
<div id="banner">
<?php
// Check to see if we\'re on a non-home-page and if the non-home-page has a featured image. use is_front_page() if that\'s desired
if( !is_home() && has_post_thumbnail() ) {
get_the_post_thumbnail( \'banner\' );
// if we\'re on the home page OR don\'t have a featured image but DO have a dynamic sidebar
} elseif ( function_exists(\'dynamic_sidebar\') && is_dynamic_sidebar(\'banner-widget\') ) {
dynamic_sidebar(\'banner-widget\');
// no featured image or on homepage with no sidebar, spit out a static image
} else {
echo \'<img class="banner" src="\' . get_template_directory_uri() . \'/img/banner.jpg" alt="Banner 1">\';
}
?>
更新:决赛
echo
这份声明之前完全是一团糟。很抱歉我把它清理干净了,我想现在应该可以用了。我还重播了
bloginfo()
函数(现在已弃用)和新的首选等效函数。