如何在回显时成为转义变量和选项?

时间:2022-01-27 作者:Daksh Angaraj

我对wordpress开发非常陌生。当我提交插件供审查时,它被拒绝了,因为<回送时必须转义em>变量和选项;。如何转义以下两段代码?

 <label for="<?php echo $this->plugin_name . \'-\' . $switch[\'id\']; ?>">
以及

 echo "<style>img[ci-src] {opacity: 0;} img.ci-image-loaded {opacity: 1;}</style>";

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

根据developers handbook, 以下是输出任何内容时应使用的功能:

esc_attr() // Use on everything else that’s printed into an HTML element’s attribute.
esc_html() // Use anytime an HTML element encloses a section of data being displayed.
esc_js() // Use for inline Javascript.
esc_textarea() // Use this to encode text for use inside a textarea element.
esc_url() // Use on all URLs, including those in the src and href attributes of an HTML element.
esc_url_raw() // Use when storing a URL in the database or in other cases where non-encoded URLs are needed.
wp_kses() // Use for all non-trusted HTML (post text, comment text, etc.)
wp_kses_post() // Alternative version of wp_kses() that automatically allows all HTML that is permitted in post content.
wp_kses_data() // Alternative version of wp_kses() that allows only the HTML permitted in post comments.
因此,在您的情况下:

<label for="<?php echo esc_attr( $this->plugin_name . \'-\' . $switch[\'id\'] ); ?>">
正如所指出的@jacob-peattie 在第二个示例中,转义是不必要的,因为没有呈现动态内容。但如果拒绝消息明确指出这是需要转义的,那么这就是解决方法:

 echo "<style>" . esc_html( "img[ci-src] {opacity: 0;} img.ci-image-loaded {opacity: 1;}" ) . "</style>";
编辑:起初我混淆了esc\\u html和esc\\u attr,现在它是正确的。

相关推荐

重置插件版本缓存|PRE_SET_SITE_TRANSPENT_UPDATE_PLUGINS

在我的插件中,我使用这些过滤器进行自动更新并检查许可证。add_filter( \'pre_set_site_transient_update_plugins\', array( &$this, \'check_for_update\' ) ); add_filter( \'plugins_api\', array( &$this, \'plugin_api_call\' ), 10, 3 ); 但正如我所看到的,WordPress在我的插件中更改了版本标签后,会调用该过