Находим и удаляем неиспользуемые шорткоды из записей WordPress

Шорткоды замечательны по своей сути, однако они не всегда являются наилучшим решение. Одним из недостатков использования плагина или темы, к которой относится шорткод, является то, то при переключении на другую тему или деактивации плагина, он (шорткод) оставит после себя теги в ваших записях, и эти теги будут выглядеть немного странно для пользователей. В этой статье мы покажем вам как найти и удалить неиспользуемые шорткоды из записей и страниц 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.

VN:F [1.9.22_1171]
Rating: 5.0/5 (3 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top