我想在Post的链接标签中添加类和html标签,因此我将一个单词链接到我的其中一个wordpress页面,如下所示:
<a href="http://localhost/website/contact/">contact</a>
当我链接它时,我希望像这样:
<a href="http://localhost/website/contact/" class="class1 class2"><span>contact</span></a>
因为我的主题使用span
进行了悬停功能。
如果仅在帖子(博客部分)中提供了一个类,则所有帖子都具有以下类别:post-contents
我知道我可以在帖子的HTML代码中进行修改,但是我希望它具有通用性,因此,只要在帖子(甚至是新帖子)类中添加链接并添加span标签即可
有什么想法吗?
答案 0 :(得分:0)
这应该可以解决问题;
function wrap_anchor_text_with_span( $content ) {
if ( ! is_admin() && preg_match( '~<a(.*?)>(.*?)</a>~', $content ) ) {
$content = preg_replace_callback( '~<a(.*?)>(.*?)</a>~', '_add_span', $content );
}
return $content;
}
add_filter('the_content', 'wrap_anchor_text_with_span', 10);
function _add_span( $matches ) {
if ( ! ( $title = strip_tags( $matches[2] ) ) ) { // If we only have an image inside the anchor
return '<a' . $matches[1] . '>' . $matches[2] . '</a>';
} else {
return '<a' . $matches[1] . '><span data-title="' . esc_attr( $title ) . '">' . $matches[2] . '</span></a>';
}
}
此函数的作用是将其钩接到the_content过滤器上,并在所有锚标记中放置一个跨度。
请注意,如果锚点包含图像,则不会添加跨度。根据另一个线程的另一个回答,Nikola Ivanov Nikolov
然后使用过滤器处理锚点...
add_filter('the_content', 'addClassToLinks');
function addClassToLinks($content){
return str_replace( '<a ', "<a class='myclass'", $content);
}
希望这会有所帮助。
关于, -B。