2013-03-12 2 views
0

У меня есть заявление, если указав следующее ...Wordpress IF оператор не работает

    <?php 

        if (empty($data['footer_text'])) { 

         echo'<p>&copy;&nbsp;'; 
          print(Date("Y")); 
         echo'<span class="sep"> | </span><a href="'; 
          echo get_settings('home'); 
         echo'" title="'; 
          bloginfo('name'); 
         echo'" rel="home">'; 
          bloginfo('name'); 
         echo'</a></p>'; 
        } 

        else{ 
         echo'<p>'; 
          global $data; 
         echo $data['footer_text']; 
         echo'</p>'; 
        } 

       ?> 

Проблема я бегу в том, что, когда я называю это так.

 <p><?php global $data; echo $data['footer_text']; ?>;</p> 

Он отображает мой текст правильно. Но когда я использую оператор IF, он всегда по умолчанию указывает на имя сайта, даже когда я знаю, что он правильно отображает текст.

Является ли мой синтаксис напортачивым? Я не могу понять, почему он думает, что ничего нет, но все же появляется, когда я показываю в теге p.

ответ

1

Вы не объявляете $ данных, чтобы быть глобальным, пока вы находитесь внутри, если(), а это означает, что $ данных не определена в точке вы делаете

if (empty($data[...])) { 

вы, вероятно, хотите

global $data; 
if (empty($data[...])) { 

вместо этого.

+0

Спасибо! Это сделал трюк! - Я помету ваш, как ответ, как только StackOverflow разрешит его. : -/ – bryanlewis

0

Попробуйте отладить переменную $data['footer_text']:

<?php var_dump($data['footer_text']); ?> 

непосредственно перед IF заявление. Помните, когда empty() возвращает true.

+0

$ data undefined Мне нужно было вызвать его перед оператором if. Большое вам спасибо за помощь! – bryanlewis

Смежные вопросы