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?
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.
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/