Intereting Posts

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

Я ищу код для ввода моего 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-файлы, документы.

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

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

Solutions Collecting From Web of "Отключить ссылки на изображения, только если ссылка – это изображение"

Я не профессионал, когда речь идет о регулярных выражениях, но это должно уловить все связанные изображения, которые атрибут 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); }); 

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