从帖子内容中的链接中删除标题属性

时间:2012-02-28 作者:Pekka

使用所见即所得编辑器创建链接,并从选择列表中选择现有页面或帖子时,这些链接将具有title 默认情况下为。

有没有一种简单的方法可以关闭这种行为?我希望从根本上关闭它(即在WYSIWYG编辑器中),而不是在输出时挂接到最终结果。

有没有不需要JavaScript的方法可以做到这一点(here is a solution that does) 并且不需要从最终的HTML最终结果中手动解析属性?

谷歌搜索类似的东西wordpress remove title attribute post content 似乎没有产生任何有用的信息-它们显示的内容主要是从菜单和页面列表中删除属性。

1 个回复
SO网友:Luis Sanz

您可以创建一个小插件来过滤帖子和页面内容,搜索其中的所有链接并删除它们的标题标签。此代码将为您完成以下操作:

<?php

/*
    Plugin Name: Remove link\'s title tag
    Description: Remove link\'s title tag from post contents
    Version: 1.0
    Author: Your name
    Author URI: http://www.yoursite.com/
*/

function wp151111_remove_link_title_attribute_from_post_content( $content ) {

    $post_types = array( \'post\', \'page\' );

    if ( is_singular( $post_types ) ) :

        $doc = DOMDocument::loadHTML( $content );

        $anchors = $doc->getElementsByTagName( \'a\' ); 

        foreach ( $anchors as $anchor ) :

            $anchor->removeAttribute( \'title\' );

        endforeach;

        $content = $doc->saveHTML();

    endif;

    return $content;

}

add_filter ( \'the_content\', \'wp151111_remove_link_title_attribute_from_post_content\' );

?>
将其另存为“remove links title tag.php”,并将其上载到您的插件文件夹,通常为“/wp content/plugins/”。您还可以将函数和过滤器挂钩直接粘贴到主题的“functions.php”文件中。

代码可以很容易地进行调整,以过滤自定义帖子类型或从其他标记中删除其他属性。

如果应用筛选器后出现编码问题,请更改此行

$doc = DOMDocument::loadHTML( $content );

$doc = DOMDocument::loadHTML( mb_convert_encoding( $content, \'HTML-ENTITIES\', \'UTF-8\' ) );

结束

相关推荐

为什么要在定制页面中使用Query_Posts()?

嗨,我是wordpress的新手,想知道query_posts() 作用如果有索引页或主页,则不需要此功能来显示帖子,但如果我制作了自定义页,则必须使用此功能来显示帖子。为什么?