1) 对于现有帖子内容,您可以将过滤器添加到the_content
要在用户看到它们之前将其从输出中删除,请执行以下操作:
function remove_tag_links( $content ) {
return preg_replace( \'#<a [^>]*\\bhref=\\\\\\?"[^"]+(?=/tag/)[^"]+\\\\\\?"[^>]*>(.+?)</a>#si\', \'$1\', $content );
}
add_filter( \'the_content\', \'remove_tag_links\' );
2)对于新建/更新内容,您可以将相同的筛选器添加到
content_save_pre
要在将链接保存到数据库之前将其取出,请执行以下操作:
add_filter( \'content_save_pre\', \'remove_tag_links\' );
注意,我的模式需要双引号(可能还有反斜杠转义双引号,对于
content_save_pre
) 围绕href属性值,并可以处理标记中的其他属性。
我提供的过滤器只是删除了链接标记,但留下了文本。如果要删除整个标记(包括其文本),请传递一个空字符串\'\'
而不是\'$1\'
作为第二个参数preg_replace