正则表达式可以在regexr中工作,但如果我过滤内容,则不能

时间:2016-03-01 作者:Sebastian Starke

我想过滤everypost的内容,并根据特定条件将类添加到我的链接中。目前,我只想从内容中筛选所有href属性并对其进行更改。

add_filter( \'the_content\' , \'add_link_classes\' );

function add_link_classes( $content ) {

    $url_regex = "/\\href\\=\\"(http|https)\\:\\/\\/.+?(?=[\\"])\\"/";

    preg_match_all( $url_regex, $content, $matches );

    var_dump( $matches );

    return $content;
}
var\\u dump返回以下内容:

array(2) { [0]=> array(0) { } [1]=> array(0) { } } 
但正如您所看到的,相同的表达式在regexr.com.

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

根据注释,最好在PHP中对regex使用单引号字符串(那么只有反斜杠和单引号是特殊的),并且根据需要只使用反斜杠,例如在这种情况下

$url_regex = \'/href="(http|https):\\/\\/.+?"/\';
(省略此处不需要的积极前瞻)。

相关推荐

在WP_Query中,哪种元查询和POST_CONTENT混合的性能更好?

我需要WP_Query 对于以下职位:要么将“Posteta”的“answer”设置为“yes”,然后post_content;</或将“答案”设置为“否”,但仅在以下情况下post_content 为空</因此,在一个理想的世界中,性能不是问题,您可以查询Posteta和post_content, args看起来像这样:$args = array( \'relation\' => \'OR\', \'meta_query\' => array(