Последнее бновение - 15 января 2023 в 16:49
Однажды, мне потребовалось удалить неиспользуемый шорткод на сайте под управлением WordPress. И вроде бы нет ничего проще, бери и удаляй. Но проблема заключалась в том, что шорткод было не один. Их было даже не два и не три… Шорткоды эти отображались почти в каждой записи блога. До удаления соответствующей функции в файле functions.php они выводили оглавления.
В другом случае, я отказался от использования шорткодов, при помощи которых на сайте висели блоки с рекламой. Их тоже надо было массово удалить со всех страниц.
Вот так бывает, сначала в поте лица устанавливаешь шорткоды на сайт, а потом их же ликвидируешь.
Перспектива редактирования десятков записей не очень-то радовала. Но, оказывается, сообщество WordPress уже решило эту проблему, которая по сути проблемой и не является.
Один из вариантов удаления неиспользуемых шорткодов сразу со всех страниц — внести в файл functions.php такую строку кода:
add_shortcode( 'your-supershortcode', '__return_false' );
Где your-supershortcode — название шорткода в квадратных скобках. В данном случае шорткоды будут скрыты от глаз пользователей. Наверное, такой способ подойдёт для временного удаления ненужных шорткодов.
Мне понравился другой путь решения проблемы, более радикальный, когда отработавшие своё шорткоды удаляются раз и навсегда при формировании SQL-запроса в базе данных.
Для этого надо сделать вот такой SQL-запрос к базе данных:
UPDATE wp_post SET post_content = replace(post_content, '[your-supershortcode]', '' );
Где your-supershortcode — опять же название шорткода.
Данную операцию очень удобно провести в phpMyAdmin. Я покажу, как это делается на хостинге TimeWEB, которым пользуюсь не первый год.
В панели управления аккаунтом хостинга TimeWeb кликнуть по вкладке «Открыть phpMyAdmin».
Перейти к нужной базе данных и кликнуть по вкладке «SQL».
В открывшемся поле внести вышеуказанный код и кликнуть по кнопке «Вперёд».
Теперь можно проверить наличие нерабочего шорткода на страницах сайта. Его вы точно не найдёте.