Вопрос

Я настраиваю блог WordPress, и мне нужно создать собственные виджеты боковой панели.Мой PHP в лучшем случае заржавел.Я пытаюсь объединить переменную php в строку, устанавливаемую как элемент массива.вот код, который я использую, похоже, он не работает.Все, что он делает, это печатает каталог таблицы стилей вверху каждой страницы:

if ( function_exists("register_sidebar") )
    register_sidebar(array(
        "before_widget" => "<div class=\"rounded_box\"><div class=\"top_curve\"><img src=\"".bloginfo('stylesheet_directory')."/images/top_curve.jpg\" alt=\"Top\" width=\"247\" height=\"9\" /></div><div class=\"middle\">",
        "after_widget" => "</div><div class=\"bottom_curve\"><img src=\"".bloginfo('stylesheet_directory')."/images/bottom_curve.jpg\" alt=\"Bottom\"  /></div></div>",
        "before_title" => "<h2>",
        "after_title" => "</h2>",
    ));

и как вы можете видеть здесь, я пытаюсь объединить bloginfo('stylesheet_directory') на 2 элемента.Это не работает должным образом.В конечном итоге он просто печатает его вверху страницы перед тем, как doctype.

Это было полезно?

Решение

bloginfo('stylesheet_directory') будет отображать каталог таблицы стилей.Когда вы объявляете массив, вы фактически записываете данные в стандартный вывод.Вот почему он будет отображаться вверху страницы.То, что вы ищете, это get_bloginfo.

Другие советы

Использовать взрываться:

string implode  ( string $glue  , array $pieces  )
string implode ( array $pieces )

Соедините элементы массива с помощью связующей строки.

Похоже, у вас в конце запятая.Возможно, это так.Снимите его и проверьте.Я также заменил «на один».

ОБНОВЛЯТЬзаменил bloginfo() на get_bloginfo().

if ( function_exists("register_sidebar") )
{
  $args =array(
  "before_widget" => "<div class='rounded_box'><div class='top_curve'><img src='".get_bloginfo('stylesheet_directory')."/images/top_curve.jpg' alt='Top' width='247' height='9' /></div><div class='middle'>",
  "after_widget" => "</div><div class='bottom_curve'><img src='".get_bloginfo('stylesheet_directory')."/images/bottom_curve.jpg' alt='Bottom' /></div></div>",
  "before_title" => "<h2>",
  "after_title" => "</h2>");'

  register_sidebar($args);
}

Я знаю, что это не технически ответ на ваш вопрос, но задумывались ли вы:

if ( function_exists("register_sidebar") )
    $ssheet_dir = bloginfo('stylesheet_directory');
    register_sidebar(array(
            "before_widget" => "<div class=\"rounded_box\"><div class=\"top_curve\"><img src=\"$ssheet_dir/images/top_curve.jpg\" alt=\"Top\" width=\"247\" height=\"9\" /></div><div class=\"middle\">",
            "after_widget" => "</div><div class=\"bottom_curve\"><img src=\"$ssheet_dir/images/bottom_curve.jpg\" alt=\"Bottom\"  /></div></div>",
            "before_title" => "<h2>",
            "after_title" => "</h2>",
    ));

Это было бы проще и быстрее — потребовалось бы лишь один раз вызвать функцию bloginfo.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top