Шорткоды замечательны по своей сути, однако они не всегда являются наилучшим решение. Одним из недостатков использования плагина или темы, к которой относится шорткод, является то, то при переключении на другую тему или деактивации плагина, он (шорткод) оставит после себя теги в ваших записях, и эти теги будут выглядеть немного странно для пользователей. В этой статье мы покажем вам как найти и удалить неиспользуемые шорткоды из записей и страниц WordPress.
Шорткоды плохие?
Нет, конечно же нет. Шорткоды не плохие, однако чрезмерное их использование может привести к некоторым проблемам. Например, мы очень часто используем плагин Compact Archives, который предоставляет шорткод и тег шаблона. Обычно этот шорткод используется только на странице архива, поэтому если возникнет необходимость деактивировать плагин, то появится только одна страница, из которой шорткод нужно будет удалить.
С другой стороны, существуют плагины и темы, которые предоставляют шорткоды для создания элементов дизайна типа кнопок, таблиц, колонок и т.д. Некоторые плагины для рекламы также используют шорткоды. Теперь же, когда пользователь использовал эти шорткоды во многих записях, будет проблематично для него убрать эти шорткоды из всех записей и страниц.
Именно по этой причине мы рекомендуем нашим пользователям не привязываться к темам или плагинам, которые требуют от вас добавлять шорткоды в большое количество записей. Всегда нужно попробовать найти лучшую альтернативу, если такое возможно, или же связаться с автором темы или плагина. Они могут подсказать вам способ лучше для достижения той же функциональности без использования множества шорткодов в записях и на страницах.
Тем же, кто до сих пор не подозревает, есть ли у него неактивные шорткоды на сайте, необходимо взглянуть на ваши записи.
[some-random-shortcode]
Для того, чтобы удалить неиспользуемые шорткоды из ваших страниц и записей, необходимо для начала найти их.
Находим все записи, содержащие определенный шорткод
Мы будем использовать простейший подход для поиска шорткода внутри содержимого записи. Просто добавьте код в файл functions.php вашей темы или в плагин для сайта WordPress:
function wpb_find_shortcode($atts, $content=null) { ob_start(); extract( shortcode_atts( array( 'find' => '', ), $atts ) ); $string = $atts['find']; $args = array( 's' => $string, ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) { echo '<ul>'; while ( $the_query->have_posts() ) { $the_query->the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php } echo '</ul>'; } else { echo "Sorry no posts found"; } wp_reset_postdata(); return ob_get_clean(); } add_shortcode('shortcodefinder', 'wpb_find_shortcode');
В этом коде мы создали шорткод (как бы иронично это не звучало). Шорткод запускает функцию для выполнения произвольного запроса к WordPress. В этом запросе мы используем стандартную функцию поиска WordPress для того, чтобы найти шорткод и, затем, вывести все записи, найденные с этим шорткодом.
Для того, чтобы использовать этот код, необходимо создать новую запись или страницу и вставить туда следующий шорткод:
[shortcodefinder find='myshortcode']
Замените myshortcode на тег шорткода, который вы ищете. Сохраните вашу запись или страницу в виде черновика, а затем сделайте ее предпросмотр. Это позволит вам увидеть список всех записей, содержащих тег искомого шорткода.
Как удалить неиспользуемые шорткоды в WordPress
К сожалению, самый лучший способ удалить неиспользуемые шорткоды из ваших записей, это вручную редактировать каждую запись, содержащую шорткод. В способе, описанном выше, мы показали как получить список всех записей, содержащих определенный шорткод. Надеемся, что это поможет вам сохранить ваше время. После того, как у вас будет список, необходимо заходить в редактирование каждой записи и удалять шорткоды один за другим.
В качестве альтернативы, если вы не хотите вручную править все записи, можно использовать быстрое решение, которое просто скроет шорткоды из вашего контента. Просто вставьте код в файл functions.php вашей темы или в плагин для сайта WordPress:
add_shortcode( 'shortcodetag', '__return_false' );
Замените shortcodetag на подлежащий удалению шорткод.
В целом, код выше добавляет шорткод и заставляет его ничего не выводить. В этом случае ваш шорткод будет парситься как и любой другой зарегистрированный шорткод, однако без результата вывода в контент. Если же неиспользуемых шорткодов в ваших записях более одного, то код выше можно использовать сколько угодно раз, просто заменяя shortcodetag на шорткод, который нужно скрыть.
Надеемся, что эта статья помогла вам найти и удалить неиспользуемые шорткоды из записей и страниц WordPress.