web-dev-qa-db-fra.com

Plugin pour changer automatiquement le texte d'ancrage des URL en titre de destination?

Dites que je lie à http://www.glumbo.com sur l'un de mes messages. Je souhaite que wordpress modifie automatiquement le texte d'ancrage du lien vers le titre de glumbo.com. Comment puis-je faire ceci?

1
Matthew Hui

Décidé de divertir l'idée. Adapté de mon extrait de code qui modifie les ancres en noms de domaine réduits . Un peu trop verbeux, mais semble fonctionner.

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 peut-être qu'il serait logique de modifier la publication sur la sauvegarde plutôt que le filtrage sur l'affichage ... Eh bien, selon mon commentaire, je ne pense pas que les titres de page soient bons pour cela de toute façon.

6
Rarst

J'ai trouvé une excellente page qui donne de nombreux exemples téléchargeables de la modification du texte dans une ancre à l'aide de jQuery. Ils sont vraiment utiles pour les sites Web 2.0 et Web 3.0.

http://www.ajaxera.com/jquery-change-text-in-anchor/

0
user3112