删除帖子中的所有标签链接

时间:2012-09-11 作者:joelrnorris

我们正在这个网站上工作:http://granthammond.staging.wpengine.com/它将不再使用标签,我需要一种方法来剥离/删除帖子内容中的所有标签链接,例如:任何包含/tag/ 需要全部离开,

<a href="http://www.granthammond.com/tag/nashville-real-estate/">Tagged with: Nashville Real Estate</a>
我需要移除整个<a> 要素对于所有标签,跨越所有帖子。

如往常一样,我们非常感谢您的任何帮助。

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

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

SO网友:FlashingCursor

主题功能。php文件,添加以下内容:

add_filter( \'the_tags\', \'remove_links\' );
function remove_links($thelist) {
  return preg_replace(\'#<a.*?>([^<]*)</a>#i\', \'$1\', $thelist);
}

结束

相关推荐

Get_Posts()似乎忽略了post_type

我正在尝试获取post类型为“leads”的帖子(我使用的代码见下文),但是生成的查询(通过调试查询获得)包括“where post\\u type in(“leads”、“leads”、“product\\u description”、“custom\\u products”)”[[注意leads有两次]]这让我想到,不知何故,某种东西被挂在了这里面——但抑制\\u filters=>true不应该阻止这种情况发生吗?如果是这样的话,到底发生了什么,我如何将帖子限制为“潜在客户”? $args