Я уже писал о шорткодах. Например, о том, как использовать шорткод постоянной, вечной внутренней ссылки, причем такой, которая в будущем не изменит свое значение, как бы вы не меняли структуру блога. Или о том, как самостоятельно сделать шорткод с помощью плагина Shortcoder. В общем, всем понятно, что шорткоды – очень удобный инструмент, намного облегчающий работу с блогом, причем не только блоггеру, но и посетителям. Часто у посетителей блога возникают проблемы со вставкой картинок в комментарии. Давайте облегчим им эту задачу, и без посторонних плагинов создадим простой шорткод, позволяющий вставлять изображения в комментарии даже самым неискушенным пользователям.
Для этого воспользуемся файлом functions.php – создадим в нем функцию, преобразующим ссылку на картинку в саму картинку. Откройте этот файл и вставьте в него такой код:
//IMG shortcode start function ImgShortcode($atts, $content = null) { extract(shortcode_atts(array( ), $atts)); return ''; } add_shortcode("img", "ImgShortcode"); function embed_images($content) { $content = preg_replace('/[img=?]*(.*?)([/img)?]/e', '"<a href="https://n-wp.ru/wp-content/uploads/2013/03/1.jpg"><img src="https://n-wp.ru/wp-content/uploads/2013/03/1.jpg" alt="" /></a>"', $content); return $content; } function embed_image_instructions($id) { echo ' <span style="font-style:normal;padding:2px;float:right;margin:6px"> <label for="subscribe" style="margin:0 5px 5px 5px;vertical-align:top;font-size:11px">подписка</label> </span> <span style="font-style:normal;padding:2px;float:right;margin:6px;font-size:11px"> <span><a title="правила" target="_blank" href="https://n-wp.ru/rules/#rules04" rel="noopener noreferrer">?</a></span> <span><a title="помощь" target="_blank" href="https://n-wp.ru/category/questions/" rel="noopener noreferrer">+</a></span> </span> '; return $id; } add_filter('comment_text', 'embed_images'); add_action('comment_form', 'embed_image_instructions'); //IMG shortcode end
Этот код создает функцию, которая создает шорткод [img], с помощью которого можно вставлять картинки в комментарии и содержимое постов, причем я специально усложнил шорткод таким образом, чтобы картинка являлась ссылкой на саму себя – это упрощает копирование ссылки на картинку для других, открывая изображение в полном размере в отдельном окне.
Пример:
[img]https://n-wp.ru/files/default.jpg[/img]
Использовать этот шорткод очень легко: [img]http://n-wp.ru/files/default.jpg[/img]
Этот шоркод выведет изображение default.jpg, сделав его ссылкой на себя же. Пользуйтесь!
Проблема.
Вот код:
Так вот, проблема в том, что в случае использования в комментарии вложенности шорткодов, работать будет только один из них.
Пример:
[img]http://iceimg.com/i/bd/31/3a6abb2c4b.jpg[/img]
Как победить?