我正在定制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
之前的页面顶部打印出来。
答案 0 :(得分:3)
bloginfo
('stylesheet_directory')将回显样式表目录。声明数组时,您实际上是在写入stdout。这就是它将显示在页面顶部的原因。您要找的是get_bloginfo
。
答案 1 :(得分:0)
使用implode:
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
使用胶水串连接数组元素。
答案 2 :(得分:0)
看起来你最后有一个逗号。可能就是这样。删除它并测试。 我也用“singe”取代“。”
<强>更新强> 用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);
}
答案 3 :(得分: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函数。