Если еще не работает .. - PullRequest
       1

Если еще не работает ..

0 голосов
/ 17 октября 2011

Я хочу показать содержимое шаблона, если объявление недоступно

Я использую этот код, но

и объявление, и содержимое шаблона показывают

<?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 голосов
/ 17 октября 2011

Нет возможности получить оба состояния оператора IF.С вашим кодом что-то не так.Возможно, вы неправильно отображали здесь весь свой код?


Ответ # 2

Проверяемая вами функция:

if(dt_show_ads('position=Header&before=<div>&after=</div>'))
{
}
else
{
}

Может распечататьсоответствующий HTML и в конце вернуть false в примере.В этом случае вы получаете false для первого оператора IF, а из-за false вы получаете часть else.

Чтобы быть уверенным, что является результатом dt_show_ads ();сделать это:

<code>echo "<pre>" . print_r(dt_show_ads('position=Header&before=<div>&after=</div>'), true) . "
";
0 голосов
/ 17 октября 2011

dt_show_ads('position=Header&before=<div>&after=</div>'), кажется, не возвращает никакого значения.Это оценивает false в PHP.

Что делает, однако, dt_show_ads(), это вставляет рекламный html (если есть).

Поэтому, независимо от того, есть реклама илинет, ваша else часть всегда выполняется.

Быстрый запрос Google не нашел для меня никакой разумной документации по 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';
}
0 голосов
/ 17 октября 2011
<?php 
if (!dt_show_ads('position=Header&before=<div>&after=</div>')) {
include TEMPLATEPATH.'/templates/newsleft_col.tpl.php';}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...