向内容中的内部链接添加类

时间:2014-07-29 作者:honk31

我想在\\u内容内的所有链接中添加一个类,该类指向其他内部内容,例如其他帖子和页面。我想自动执行此操作。不知道最好的做法是寻找内容还是尝试与tinymce编辑器挂钩。。我不知道怎么吃。。

这就是我所拥有的:

<a title="title" href="url">text</a>
我希望是这样

<a title="title" href="url" class="class">text</a>

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

我不想使用js,我想要一个php解决方案,另外,我还将所有内部链接操作为锚定链接。最后,您必须自己决定,php或js对您来说最好的方式是什么。

这将进入函数。当前主题文件夹中的php。

add_filter(\'the_content\', \'crawl_content\');
function crawl_content( $text ) {
    $url = str_replace("/", "\\/", "$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
    $search = \'/href="https?:\\/\\/\' . $url . \'(?:[^\\/"]+\\/)*([^\\/"]+)+\\/"/\';
    preg_match_all( $search, $text, $matches);
    for ($a = 0; $a < count($matches[0]); $a++)    {
        $new = "href=\\"#" . $matches[1][$a] . "\\" class=\\"newsLink\\"";
        $text = preg_replace(\'%\' . $matches[0][$a] . \'%\', $new, $text);
    }
    return $text;
}
没有筛选器的内部链接如下所示:

<a title="title" href="http://example.com/some-random-subdings-or-not/post-slug/">Link Text</a>
使用过滤器时,其外观如下所示:

<a title="title" href="#post-slug" class="newsLink">Link Text</a>
外部链接将保持原样。

SO网友:jbyrne2007

您可以在jquery的文档加载中执行此操作。使用addClass

$("#DivName").find("a").addClass("YourClassHere");

结束

相关推荐

Usage of filters

在下面的示例中(从WordPress.org)获取提要后,为什么要删除过滤器<?php function return_7200( $seconds ) { // change the default feed cache recreation period to 2 hours return 7200; } add_filter( \'wp_feed_cache_transient_lifetime\' , \'return_720