По умолчанию URL-адреса в комментарии остаются такими, какие они есть. Если пользователь вводит непосредственно URL-адрес изображения, было бы неплохо заменить URL-адрес фактическим HTML-тегом img. Добавьте следующий фрагмент кода PHP в файл functions.php темы WordPress :
// empty - allow all posts, otherwise, put post IDs joined by comma
define('ALLOW_POSTS', '');
function helloacm_allow_comment_image( $comment) {
$post_ID = $comment["comment_post_ID"];
$allow_posts = ALLOW_POSTS? explode(',', ALLOW_POSTS): array();
if(empty($allow_posts) || in_array($post_ID, $allow_posts)){
global $allowedtags;
$content = $comment["comment_content"];
$content = preg_replace('/(https?://S+.(?:jpg|png|jpeg|gif|bmp))+/','<img title="$0 How to Allow Images Instead of URL in WordPress Comments? wordpress " src="$0" alt="$0 How to Allow Images Instead of URL in WordPress Comments? wordpress " />',$content);
$allowedtags['img'] = array('src' => array(), 'alt' => array());
$comment["comment_content"] = $content;
}
return $comment;
}
add_filter('preprocess_comment', 'helloacm_allow_comment_image');
Мы используем регулярное выражение для поиска URL-адресов изображений (заканчивающихся расширениями jpg/png/jpeg/gif/bmp) и заменяем их HTML-тегом img. Мы также должны разрешить тег IMG в разделе комментариев, чтобы он отображался правильно. Вышеупомянутая функция должна быть добавлена к фильтру preprocess_comment, который вызывается перед вставкой комментария в базу данных.