如果不工作..

时间:2011-10-17 09:04:20

标签: wordpress

如果广告不可用,我想展示模板内容

我使用此代码,但

广告和广告模板内容正在显示

<?php
    if(dt_show_ads('position=Header&before=<div>&after=</div>'))
    {
?>
    <!-- Some content here -->
<?php
    }
    else
    {
        include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';
    }
?>

3 个答案:

答案 0 :(得分:0)

无法获得IF语句的两种状态。您的代码有问题。您可能没有正确显示所有代码吗?


回答#2

您检查的功能:

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';}
?>