Плагин для автоматического изменения якорного текста URL-адресов на заголовок назначения?
Скажем, я ссылаюсь на http://www.glumbo.com на одном из моих постов. Я хочу, чтобы wordpress автоматически изменил якорный текст ссылки на glumbo.com его титул. Как я могу это сделать?
1
Author: Matthew Hui, 2010-12-28
2 answers
Решил развеять эту идею. Адаптировано из моего фрагмента, который изменяет привязки на свернутые доменные имена. Немного слишком многословно, но, кажется, работает.
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 возможно, имело бы смысл изменить публикацию при сохранении, а не фильтровать на дисплее... Ну, согласно моему комментарию, я все равно не думаю, что названия страниц подходят для этого.
6
Author: Rarst, 2010-12-28 12:31:40