如果广告不可用,我想显示模板内容
我使用这段代码,但是
显示广告和模板内容
<?php
if(dt_show_ads('position=Header&before=<div>&after=</div>'))
{
?>
<!-- Some content here -->
<?php
}
else
{
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';
}
?>发布于 2011-10-17 17:09:45
dt_show_ads('position=Header&before=<div>&after=</div>')似乎没有返回任何值。在PHP中,它的计算结果是false。
不过,dt_show_ads()所做的是插入ad 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-semi-standard 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';
}发布于 2011-10-17 17:09:08
获取IF语句的两个状态是不可能的。您的代码有问题。你可能没有在这里正确地显示你的所有代码?
答案#2
您要检查的函数:
if(dt_show_ads('position=Header&before=<div>&after=</div>'))
{
}
else
{
}它可以打印出适当的HTML,最后在example中返回一个false。在这种情况下,第一个IF语句会得到false,因为false,你会得到else部分。
要确定dt_show_ads()的结果是什么,请这样做:
echo "<pre>" . print_r(dt_show_ads('position=Header&before=<div>&after=</div>'), true) . "</pre>";发布于 2011-10-17 17:07:01
<?php
if (!dt_show_ads('position=Header&before=<div>&after=</div>')) {
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';}
?>https://stackoverflow.com/questions/7791527
复制相似问题