1

我正在自定义 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.

4

4 回答 4

3

bloginfo('stylesheet_directory') 将回显样式表目录。声明数组时,实际上是在写入标准输出。这就是为什么它会显示在页面顶部的原因。您正在寻找的是get_bloginfo.

于 2009-11-20T21:04:29.247 回答
0

使用内爆

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

使用粘合字符串连接数组元素。

于 2009-11-20T20:56:01.027 回答
0

看起来你最后有一个逗号。可能就是这样。删除它并测试。我也将 \" 替换为单个 '。

UPDATE 用 get_bloginfo() 替换了 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);
}
于 2009-11-20T21:01:15.387 回答
0

我知道这在技术上不是您问题的答案,但您是否考虑过:

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 函数。

于 2009-11-20T21:16:04.487 回答