PHP编码标准、小部件和清理

时间:2016-12-12 作者:guillaume.molter

我对自定义小部件和WordPress编码标准有意见。创建自定义小部件时,您的类应该有一个“widget”方法来显示小部件。类似于:

<?php
public function widget( $args, $instance ) {
    echo $args[\'before_widget\'];
    ?> <span><?php echo esc_html( \'Great widget\', \'text-domain\' ); ?></span> <?php
    echo $args[\'after_widget\'];
}
?>
虽然这是完美的功能,但它不会通过WordPress编码标准的PHP代码嗅探器测试,因为$args[\'after_widget\'];$args[\'before_widget\']; 未转义。。。

我做错了什么?

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

这些参数包含任意HTML,无法正确转义。这本质上是对小部件代码设计方式的限制,您可以在核心小部件类中看到,这些小部件上没有进行转义。

要吸取的教训:

WP core没有始终如一地遵守自己的编码标准(而且实现这些标准被认为不值得有针对性的努力)

SO网友:Mark Kaplun

这是一个过于严格的编码标准的问题,而不是应该如何编写wordpress代码的问题。在此上下文中,假设这两个参数都是有效的HTML(它们在侧栏注册时间中定义)。

无论如何,在大多数这样的工具中,都有一种方法可以指示linter/sniffer忽略该行或函数。

顺便说一句,你所说的标准可能是wordpress。com VIP标准,而不是wordpress标准-https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'