删除wordpress侧边栏小部件中的空标题

时间:2011-05-06 15:57:22

标签: wordpress wordpress-theming

我已经注册了一个wordpress侧边栏:

register_sidebar( array(
    'name' => __( 'First Sidebar', 'theme_name' ),
    'id' => 'primary-widget-area',
    'description' => __( 'The primary widget area', 'theme_name' ),
    'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
    'after_widget' => '</li>',
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
) );

问题是当标题为空时, h3 仍然会被渲染。当标题留空时有没有办法删除这些?

5 个答案:

答案 0 :(得分:3)

这只是Mark回答的一小部分内容。如果标题为空,则默认日历窗口小部件使用&nbsp;,因此它仍显示空标题。我通过将其添加到我的主题functions.php

来解决这个问题
function foo_widget_title($title)
{
    return $title == '&nbsp;' ? '' : $title;
}
add_filter('widget_title', foo_widget_title);

将'foo'改为适当的。

答案 1 :(得分:1)

打印before_titleafter_title是由widget自身在函数widget( $args, $instance )中完成的。所有默认的wordpress 3.1小部件在解析before_titleafter_title之前检查标题是否为空,但我猜你正在使用主题或插件中的自定义小部件,在这种情况下你将拥有调整widget( $args, $instance )代码。

答案 2 :(得分:1)

想要感谢丹尼尔詹姆斯的片段 - 这很美。我做了一个小改动,我替换了!no_display,然后在前端添加了!no_display到我的小部件的标题。这让我的用户清楚地知道它是一个在函数中引用的钩子(并且不要与看似空的小部件标题混淆)。

答案 3 :(得分:0)

编辑模板并检查标题是否存在。如果没有设置标题,请不要打印h3。

答案 4 :(得分:0)

注册两个侧栏,但'before_title''after_title'值相同。检查标题,然后相应地调用其中一个。