插件可以自动将URL的锚文本更改为目的地标题?

时间:2010-12-28 作者:Matthew Hui

说我链接到http://www.glumbo.com 在我的一个帖子上。我希望wordpress自动将链接的锚文本更改为glumbo。com的标题。我该怎么做?

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

决定接受这个想法。改编自我的片段changes anchors to collapsed domain names. 有点过于冗长,但似乎有效。

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

function anchors_to_page_titles( $content ) {

    preg_match_all( \'/<a.*?href="(.*?)".*?>(.*?)<\\/a>/\', $content, $matches );
    array_shift( $matches );

    foreach( $matches[0] as $key => $url ) {

    $anchor = $matches[1][$key];

    if( $url == $anchor ) {

        $transient_key = \'page_title_\'.md5($url);
        $anchor = get_transient($transient_key);

        if( !$anchor ) {

            $response = wp_remote_request($url);
            $body = wp_remote_retrieve_body($response);
            $pattern = \'/title>(.*?)</\';
            $title = array();
            preg_match( $pattern, $body, $title);

            if( !empty( $title ) ) {

                $title = $title[1];
                $anchor = $title;
                set_transient( $transient_key, $anchor, 60*60*24 );
            }
            else {
                $anchor = $url;
                set_transient( $transient_key, $anchor, 60*60 );
            }
        }

        $content = str_replace( ">{$url}</a>", ">{$anchor}</a>", $content );
    }

    }

    return $content;
}
PS也许在保存时修改帖子比在显示时过滤更有意义。。。嗯,根据我的评论,我不认为页面标题对这有好处。

相关推荐

有没有一种直接的方法可以通过Yoast SEO以编程的方式提供元描述标记,而不依赖于管理面板?

我很好奇是否有支持的方法来提供<meta og:description=\"%VALUE%\"> 标记到我的页面以获取自定义模板。到目前为止,我已将一个操作添加到wpseo_head 回显不利用开放图的元描述标记。但是,我看到前面提到的默认情况下是从the_content().通常情况下,这很好,但对于将使用此模板的特定页面,数据将从外部GUI(此数据也存放在仓库中)提供,此模板将从该GUI进行查询,并将特定的数据/内容传递给适当的wpautop()/do_shortcode()/等函数,并最

插件可以自动将URL的锚文本更改为目的地标题? - 小码农CODE - 行之有效找到问题解决它

插件可以自动将URL的锚文本更改为目的地标题?

时间:2010-12-28 作者:Matthew Hui

说我链接到http://www.glumbo.com 在我的一个帖子上。我希望wordpress自动将链接的锚文本更改为glumbo。com的标题。我该怎么做?

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

决定接受这个想法。改编自我的片段changes anchors to collapsed domain names. 有点过于冗长,但似乎有效。

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

function anchors_to_page_titles( $content ) {

    preg_match_all( \'/<a.*?href="(.*?)".*?>(.*?)<\\/a>/\', $content, $matches );
    array_shift( $matches );

    foreach( $matches[0] as $key => $url ) {

    $anchor = $matches[1][$key];

    if( $url == $anchor ) {

        $transient_key = \'page_title_\'.md5($url);
        $anchor = get_transient($transient_key);

        if( !$anchor ) {

            $response = wp_remote_request($url);
            $body = wp_remote_retrieve_body($response);
            $pattern = \'/title>(.*?)</\';
            $title = array();
            preg_match( $pattern, $body, $title);

            if( !empty( $title ) ) {

                $title = $title[1];
                $anchor = $title;
                set_transient( $transient_key, $anchor, 60*60*24 );
            }
            else {
                $anchor = $url;
                set_transient( $transient_key, $anchor, 60*60 );
            }
        }

        $content = str_replace( ">{$url}</a>", ">{$anchor}</a>", $content );
    }

    }

    return $content;
}
PS也许在保存时修改帖子比在显示时过滤更有意义。。。嗯,根据我的评论,我不认为页面标题对这有好处。

相关推荐

Seo Friendly Filter URLs

有没有可能创建更为SEO友好的过滤器URL?而不是:https://thejewelleryroom.com/product-category/rings/?filter_material=gold然后:https://thejewelleryroom.com/product-category/rings/rings-in-gold/?