这是一个创建小部件的标准函数,它显示小部件的标题并在其下方回显“test”:
function widget( $args, $instance ) {
extract( $args );
$title = apply_filters(\'widget_title\', $instance[\'title\'] );
echo $before_widget;
if ( $title )
echo $before_title . $title . $after_title;
echo \'test\';
echo $after_widget;
}
它创造了完美的输出:
<li id="widgets-id" class="widget widgets-class">
<h2 class="widgettitle">Title</h2>
test
</li>
但当我替换
echo \'test\';
具有
wp_list_pages();
事情开始看起来很糟糕,因为小部件的主体显示在关闭小部件的标记之后:
<li id="widgets-id" class="widget widgets-class">
<h2 class="widgettitle">Title</h2>
<!-- Hey, I wanted this data to be put here! -->
</li>
<li class="page_item page-item-number">
<a href="#">Paage title</a>
<li>
(...)
有没有办法解决这个问题?我一直在尝试使用多个wp\\u list\\u pages()参数,但似乎没有任何帮助。
最合适的回答,由SO网友:chrisguitarguy 整理而成
wp_list_pages
不将其输出包装在ul
或ol
标签这取决于你。
换句话说,如果你打电话wp_list_pages
, 它会吐出一堆li
标签,您的浏览器认为它是错误的,并在认为合适时“更正”html。尝试以下操作:
function widget( $args, $instance ) {
extract( $args );
$title = apply_filters(\'widget_title\', $instance[\'title\'] );
echo $before_widget;
if ( $title )
echo $before_title . $title . $after_title;
echo \'<ul>\';
wp_list_pages();
echo \'</ul>\';
echo $after_widget;
}