Я работаю над обновлением сайта и обнаружил странную причуду.
В функции виджета (находится в default-functions.php
) коде, есть строка, которая говорит:
if (!empty($title)) { echo $before_title . '[' . $title . '] ' . $after_title; }
function widget($args, $instance) {
extract($args);
$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
$text = apply_filters('widget_text', empty($instance['text']) ? '' : $instance['text'], $instance);
echo $before_widget;
if (!empty($title)) { echo $before_title . '[' . $title . '] ' . $after_title; } ?>
<div class="textwidget"><?php echo !empty($instance['filter']) ? wpautop($text) : $text; ?></div>
<?php
echo $after_widget;
}
Булева в !empty($title)
предполагается передать 0, если $ название не имеет значения, но для по какой-то причине он возвращает 1. Я посмотрел в базе данных и все и не могу определить, в чем проблема.
(я добавил скобки для проверки вопроса)
Дополнительная отладка:
- Я выключил все плагины
- Я проверил и значение
''
дается$title
- Когда я поменял
empty($instance['title'])
наempty($title)
, код работает (названия не отображаются в текстовых виджетах) - Когда я распечатываю
$title
, я вижу пробел. - В другом экземпляре WP у меня нет проблем с этим кодом.
Любые идеи друзей? У меня есть PHP Text Widget, но он использует базу данных textwidget.
Что такое var_dump ($ title) и var_dump (! Empty ($ title)) print? – Rangad
@Sanford, когда вы говорите, что '' 'присваивается' $ title', вы говорите пустую строку или буквально цитируете? –
@RUJordan Я имею в виду, что в коде (см., Где задан '$ title') есть стандартная пустая строка. Но когда я снова запустил код, на этот раз с помощью 'strcmp' в' $ title' и '$ instance ('title')', два значения, когда они пусты, различны. – Sanford