我不想使用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>
外部链接将保持原样。