Intereting Posts
Поле поиска, которое позволяет использовать опции «Соответствовать любому ключевому слову» или «Соответствовать всем ключевым словам» Как получить пользовательскую переменную сеанса входа в систему, зарегистрированную пользователем Страницы запросов на основе тегов вызов вызова класса импорта из действия в плагине перед выполнением wp_cron Каждый раз, когда я сохраняю свои параметры плагина, он удаляет другие параметры плагина Сеансы, которые не создаются правильно в пользовательской функции Захват имени шаблона страницы? wp_schedule_event выполняется в фоновом режиме или нет? Виджет боковой панели, чтобы показать, что популярный пост не работает? Использование плагина списка категорий WP для динамического отображения категории (PHP) Как добавить дополнительный крючок WooCommerce изменение meta_query в parse_query Почему этот виджет не отображает один из значков? Остановить WordPress от обрезки изображений с использованием параметров URL WordPress Cron Job Count Up Up и Not Down

Отключить ссылки на изображения, только если ссылка – это изображение

Я ищу код для ввода моего custom-functions.php, который отключит ссылки на изображения, которые ссылаются на изображение (jpg, jpeg, png, gif, ect.)

Я использовал этот код, указанный на этой странице: удалять ссылки с изображений с помощью functions.php

Это код, который я вставил в свой custom-functions.php

add_filter( 'the_content', 'attachment_image_link_remove_filter' ); function attachment_image_link_remove_filter( $content ) { $content = preg_replace( array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', '{ wp-image-[0-9]*" /></a>}'), array('<img','" />'), $content ); return $content; } 

но он слишком надежный и отключает каждую ссылку, обернутую вокруг изображения. Мне все еще нужны ссылки для работы, которые указывают на страницы, сообщения, PDF-файлы, документы.

Может ли кто-нибудь из вас помочь? Возможно, измените приведенный выше код, чтобы распознать расширения изображений и отключить их только?

Благодарю вас.

Я не профессионал, когда речь идет о регулярных выражениях, но это должно уловить все связанные изображения, которые атрибут href связывается с файлом изображения ( (png|jpg|gif|jpeg|bmp) стесняются добавлять / удалять расширения) :

 add_filter('the_content', function($c){ return preg_replace_callback("#<\s*?a\b[^>]*>(.*?)</a\b[^>]*>#s", function($m){ $tpl = $m[0]; $cnt = isset($m[1]) ? $m[1] : null; if ( preg_match('/<a(.*?)?href=[\'"]?.+\.(png|jpg|gif|jpeg|bmp)[\'"]?(.*?)?><\/a>/i', str_replace($cnt, '', $tpl)) ) { return $cnt; } else { return $tpl; } }, $c); }); 

Я тестировал его локально, и он работает, дайте мне знать, если это поможет.