这两种类型的小部件表单方法有什么不同

时间:2017-05-08 作者:The WP Intermediate

    $title = isset( $instance[\'title\'] ) ? $instance[\'title\'] : \'\';
以及

        $title               = strip_tags($instance[\'title\']);
以上两者的区别是什么?

它们是否在小部件表单方法中执行相同的操作?或者我误解了一些东西,因为它们具有不同的功能,或者一个用于widget form function,另一个用于widget的widget方法?

或者他们只是编码实践的不同?

或者,如果它们正在执行相同的操作,那么我们可以将它们结合起来,形成这样一个更好的融合→

$title = isset( $instance[\'title\'] ) ? strip_tags($instance[\'title\']) : \'\';
也请帮助我理解这在这里的作用是什么→?

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

这只是PHP编码实践的不同之处,您可以将两者结合起来。使用?: 被称为ternary operator 这就像一个if/else速记。该行:

 $title = isset( $instance[\'title\'] ) ? $instance[\'title\'] : \'\';
这就像:

if( isset( $instance[\'title\'] ) ) {
    $title = isset( $instance[\'title\'] );
} else {
    $title = \'\';
}
如果您看到核心小部件,它们通常使用三元运算符,但这只是一个编码首选项。例如,您可以在存档小部件中看到以下代码:

$title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? __( \'Archives\' ) : $instance[\'title\'], $instance, $this->id_base );
或日历小部件中的此项:

$title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? \'\' : $instance[\'title\'], $instance, $this->id_base );
应用widget_title 对我来说,这比使用或不使用三元运算符更重要;你不应该忘记它。

结束

相关推荐

customize footer widgets area

我有一个自定义的页脚小部件区域,它在一行中水平显示最多4个小部件。如果我添加了4个以上的小部件,那么布局就会中断,因为我试图在同一行中显示它。我想让它更灵活,例如有2行(div),我可以在第一行中添加let’s 2 widget,在第二行中添加4个widget。可能我需要的是复制这一个,并制作两个页脚区域。这可能吗?如果可能,我如何实现?下面是我的小部件的实际代码。php: /* Footer Widgets */ $footer_widgets_num = wp_get_sidebars_