我正在自定义wordpress博客, 并且需要制作自定义的侧边栏小部件。我的PHP充其量是生锈的。我想做的是将php变量连接到设置为数组元素的字符串中。这是我正在使用的代码, 它似乎不起作用。它所做的只是在每页顶部打印样式表目录:
if ( function_exists("register_sidebar") )
register_sidebar(array(
"before_widget" => "
![\"Top\"](%5C%22%22.bloginfo%28'stylesheet_directory'%29.%22/images/top_curve.jpg%5C%22)
![\"Bottom\"](%5C%22%22.bloginfo%28'stylesheet_directory'%29.%22/images/bottom_curve.jpg%5C%22)
", "after_title" => "
", ));因此, 如你在此处看到的, 我正在尝试将bloginfo(‘stylesheet_directory’)连接到两个元素中。这不能正常工作。最终只是将其打印在文档类型之前的页面顶部。
#1
bloginfo(‘stylesheet_directory’)将回显样式表目录。声明数组时, 实际上是在写stdout。这就是为什么它将显示在页面顶部的原因。你正在寻找的是get_bloginfo。
#2
使用内爆:
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
用胶水线连接数组元素。
#3
看起来你最后有一个逗号。可能就是那样。删除并测试。我也将\”替换为singe’。
UPDATE用get_bloginfo()替换了bloginfo()。
if ( function_exists("register_sidebar") )
{
$args =array(
"before_widget" => "
", "after_title" => "
");'register_sidebar($args);
}
#4
我知道从技术上讲这不是你的问题的答案, 但是你是否考虑过:
if ( function_exists("register_sidebar") )
$ssheet_dir = bloginfo('stylesheet_directory');
register_sidebar(array(
"before_widget" => "
![\"Top\"](%5C%22%24ssheet_dir/images/top_curve.jpg%5C%22)
![\"Bottom\"](%5C%22%24ssheet_dir/images/bottom_curve.jpg%5C%22)
", "after_title" => "
", ));这样会更容易, 更快捷-仅涉及到一次调用bloginfo函数。