寄存器侧边栏中的小部件标题标记

时间:2013-09-18 作者:And Finally

为什么我在register\\u侧栏的“before\\u title”和“after\\u title”设置中指定的标记会应用于默认文本WordPress小部件,而不是我们的自定义小部件,而两者都在同一侧栏中,并且在小部件设置中都有标题?

例如,当我设置

register_sidebar(
        array(
            \'name\' => $name,
            \'id\' => $id,
            \'before_widget\' => \'<li id="%1$s" class="widget %2$s">\',
            \'after_widget\' => \'</li>\',
            \'before_title\' => \'<h2 class="widgettitle">XXXXX\',
            \'after_title\' => \'</h2>\',
        )
    );
XXXX出现在文本小部件的标题中,但不出现在任何自定义小部件中。

在自定义小部件的小部件方法中,我们做了如下工作

$title = $instance[\'title\'];
if ( $title ) {
    echo \'<h2><span class="text">\' . esc_html( $title ) . \'</span></h2>\';
}
这种呈现标题的方式是否会覆盖您在register\\u侧栏中的任何设置?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果这是你所有的“标题”代码,那么你不是echoing公司$before_title$after_title. 看看default text widget, 您引用的,是否:

399         function widget( $args, $instance ) {
400                 extract($args);
401                 $title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? \'\' : $instance[\'title\'], $instance, $this->id_base );
402                 $text = apply_filters( \'widget_text\', empty( $instance[\'text\'] ) ? \'\' : $instance[\'text\'], $instance );
403                 echo $before_widget;
404                 if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
405                         <div class="textwidget"><?php echo !empty( $instance[\'filter\'] ) ? wpautop( $text ) : $text; ?></div>
406                 <?php
407                 echo $after_widget;
408         }
请看第404行。我在代码中看不到“before”和“after”。

结束