如果广告不可用,我想展示模板内容
我使用此代码,但
广告和广告模板内容正在显示
<?php
if(dt_show_ads('position=Header&before=<div>&after=</div>'))
{
?>
<!-- Some content here -->
<?php
}
else
{
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';
}
?>
答案 0 :(得分:0)
无法获得IF语句的两种状态。您的代码有问题。您可能没有正确显示所有代码吗?
您检查的功能:
if(dt_show_ads('position=Header&before=<div>&after=</div>'))
{
}
else
{
}
它可以打印出适当的HTML,最后在示例中返回false。在这种情况下,你会得到第一个IF语句的错误,因为你得到了其他部分的错误。
确定dt_show_ads()的结果是什么;那样做:
echo "<pre>" . print_r(dt_show_ads('position=Header&before=<div>&after=</div>'), true) . "</pre>";
答案 1 :(得分:0)
dt_show_ads('position=Header&before=<div>&after=</div>')
似乎没有返回任何值。这在PHP中评估为false
。
dt_show_ads()
的作用是插入广告HTML(如果有的话)。
因此,无论是否有广告,您的else
部分始终都会被执行。
快速谷歌查询没有为我提供任何关于dt_show_ads的合理文档,你可能想尝试这个:
if (strlen($ads = dt_show_ads('position=Header&before=<div>&after=</div>&echo=false')) !== 0)
{
echo $ads;
// whatever other content you want to show
}
else
{
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';
}
修改强>
根据您的评论,dt_show_ads()
不支持WP半标准echo
参数,因此您需要缓冲其输出以便能够检查它:
ob_start();
dt_show_ads('position=Header&before=<div>&after=</div>');
$ads = ob_get_contents();
ob_end_clean();
if (strlen($ads) !== 0)
{
echo $ads;
// whatever other content you want to show
}
else
{
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';
}
答案 2 :(得分:-3)
<?php
if (!dt_show_ads('position=Header&before=<div>&after=</div>')) {
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';}
?>