Форум OlegON > Компьютеры и Программное обеспечение > Сеть > Создание сайтов и поисковая оптимизация (SEO)

Wordpress. Как убрать все ссылки на картинках : Создание сайтов и поисковая оптимизация (SEO)

28.03.2024 14:35


13.07.2019 19:38
OlegON
 
Обратил тут внимание, что очень много переходов в никуда на блоге inima.org
Небольшое расследование показало, что переходы эти из-за того, что Wordpress по недосмотру блоггера каждый раз к картинке добавлял ссылку на картинку.




Т.е. каждая картинка еще и ссылка на картинку. Тихий ужас, если честно, я теперь даже не представляю, что с этим счастьем теперь делать.

Быстрое решение нашлось, в файл functions.php добавляем
Код:
#Делаем так, чтобы в worpdress новые загруженные изображения не линковались на само изображение
function disable_default_linking_for_images() {
 $link_type = get_option( 'image_default_link_type' );
 if ($link_type !== 'none') {
  update_option('image_default_link_type', 'none');
 }
}
add_action('admin_init', 'disable_default_linking_for_images', 10);
Код:
#Делаем так, чтобы в worpdress уже загруженные изображения не линковались на само изображение
add_filter( 'the_content', 'del_image_link' );
function del_image_link( $content ) {
 $content =
 preg_replace(array('{<a[^>]*><img}','{/></a>}'), array('<img','/>'), $content);
 return $content;
}
проблема этих скриптов в излишнем утяжелении кода и его замедлении. Если у кого-то есть решение для вытирания этой гадости в базе, кроме выливания, правки, и заливания обратно дампа, прошу подсказать.
13.07.2019 19:53
OlegON
 
Не утерпел, перевел фильтр выше в запрос к базе данных. Вот он, чистит ненужные ссылки на картинки прямо в базе.
Код:
update wp_posts set post_content=regexp_replace(regexp_replace(post_content,'<a[^>]*><img','<img'),'/></a>','/>');
Часовой пояс GMT +3, время: 14:35.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.