PRIG_REPLACE和COMMENT_FORM_DEFAULTS

时间:2013-05-02 作者:JMau

这在一开始是一个玩笑,但现在我想知道是否可以将regex与hook comment\\u form\\u defaults一起使用。以下是我想要的:

function remove_default_allowed_tags( $defaults) {
    $defaults = preg_replace(\'/<p class="form-allowed-tags">(.*?)<\\/p>/\',\'\', $defaults);
    return $defaults;
}
add_filter(\'comment_form_defaults\', \'remove_default_allowed_tags\', 2);
我知道这样做很容易:$defaults[\'comment_notes_after\'] = \'\'; return $defaults;

但我只是想知道我是否可以在这种情况下使用regex,如果不能,为什么。感谢您的回答。

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

可以在任何有字符串要操作的地方使用regex。这就是基本的PHP。WordPress没有什么特别之处可以改变这一点。

但是,当有其他选项时,为什么要使用regex呢?虽然很有趣,但regex很棘手,很容易出错,而且使用它的开销很大。

您正在执行的操作将生成“数组到字符串的转换”Notice, 顺便说一句preg_replace 将接受字符串数组作为第三个参数,但$defaults[\'fields\'] 是一个数组Notice 因此,如果您试图更改该字段,它将不会像预期的那样工作。

结束

相关推荐

GET_SHORTCODE_regex()只与第一个短码匹配

法典中有an example 使用get\\u shortcode\\u regex()检查是否在给定页面上调用了短代码:$pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { /