Использование методов Wordpress в echo - похоже, не работает правильно? - PullRequest
2 голосов
/ 21 сентября 2010

Даже не уверен, что методы - правильная терминология ...

Вот оригинальный рабочий код:

<a href="<?php bloginfo('url'); ?>">
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.png" alt="Polished Logo" id="logo"/></a>
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
<p id="logo_title"><?php bloginfo('description'); ?></p>

Я хотел, чтобы он выполнялся только на домашней странице, поэтому я написалthis:

<? 
if ( $_SERVER["REQUEST_URI"] == '/' ){
echo '<a href="'.bloginfo('url').'">
<img src="'.bloginfo('stylesheet_directory').'/images/logo.png" alt="Polished Logo" id="logo"/></a>
<img src="'.bloginfo('stylesheet_directory').'/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
<p id="logo_title">'.bloginfo('description').'</p>';
}
?>

Но он выводит bloginfo() и другие объявления полностью вне тегов html, которые я создал.Например, с bloginfo('stylesheet_directory') будет отображаться каталог вне созданных мной тегов IMG.

Есть идеи?Видимо мой синтаксис неправильный или что-то в этом роде ...

Ответы [ 3 ]

11 голосов
/ 21 сентября 2010

bloginfo функция напрямую повторяет вывод.В этом случае вы должны использовать get_bloginfo, чтобы добавить возвращаемое значение в строку и повторить всю строку.Я считаю, что это будет работать

<?php
if ( $_SERVER["REQUEST_URI"] == '/' ) {
  echo '<a href="'.get_bloginfo('url').'">
    <img src="'.get_bloginfo('stylesheet_directory').'/images/logo.png" alt="Polished Logo" id="logo"/></a>
    <img src="'.get_bloginfo('stylesheet_directory').'/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
    <p id="logo_title">'.get_bloginfo('description').'</p>';
}
?>

Вот лучшая альтернатива:

<?php if ( $_SERVER["REQUEST_URI"] == '/' ) { ?>
<a href="<?php bloginfo('url') ?>">
  <img src="<?php bloginfo('stylesheet_directory') ?>/images/logo.png" alt="Polished Logo" id="logo"/>
</a>
<img src="<?php bloginfo('stylesheet_directory') ?>/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
<p id="logo_title"><?php bloginfo('description') ?></p>
<?php } ?>

Я также предлагаю использовать функцию is_home(), предоставляемую WordPress, для проверки домашней страницы вместо проверки$_SERVER['REQUEST_URI'] значение.

0 голосов
/ 21 марта 2013

, если вы хотите получить путь к шаблону без автоматического его отображения функцией bloginfo (), используйте:

get_bloginfo( 'stylesheet_directory', 'display' )
0 голосов
/ 21 сентября 2010

bloginfo () выводит данные с помощью echo и ничего не возвращает, поэтому вместо попытки объединить все, просто вывести последовательно, например,

echo '<a href="';
bloginfo('url');
echo '"><img src="';
bloginfo('stylesheet_directory');
//etc...

Ужасно, я знаю, но посмотрите ответ Нитеша для возможной альтернативы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...