如何在Post-Wordpress中的链接标签内添加HTML标签和类

时间:2019-05-25 00:36:19

标签: html css wordpress

我想在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标签即可

有什么想法吗?

1 个答案:

答案 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。