Мы все испытали это: вы покупаете премиум-тему, которая действительно хороша, и вы также покупаете потрясающий плагин (например, один из моих!), Но объединение темы и плагина просто совершенно не работает. И что? Есть ли в плагине или теме ошибки?
В большинстве случаев это происходит, когда вы используете шорткоды. Представьте, что вы только что купили плагин для обработки «отзывов». Вы внимательно читаете документацию и знаете, что для отображения отзывов вам необходимо включить следующий шорткод [отзывы]. Но когда вы это сделаете, ничего не появится.
Причина, по которой шорткод не заменяется отзывами, заключается в том, что ваша тема И плагин определяют один и тот же точный шорткод.
Поскольку файлы плагинов загружаются до файлов тем, они перезаписываются и в этом случае не учитываются полностью.
Вот почему я хотел показать вам простой способ отменить регистрацию шорткода темы и заменить его шорткодом плагина.
Шаг 1. Создайте простой плагин
Нам нужно создать простой плагин:
Шаг 2: проверьте, существует ли шорткод
Это самый важный шаг. Здесь вы проверяете наличие шорткода. WordPress имеет глобальную переменную $ shortcode_tags, в которой хранится список всех зарегистрированных коротких кодов. Итак, нам просто нужно пройтись по этой переменной и проверить, входит ли в нее шорткод, который мы ищем.
Это общая функция, которую мы будем использовать в более конкретной функции, включая слаг шорткода для поиска. Эта функция возвращает TRUE, если шорткод существует, или FALSE, если нет.
Шаг 3. Удалите шорткод и зарегистрируйте новый
Следующая функция использует только что созданную rc_asc_shortcode_exists(). Он просто проверяет наличие шорткода, заменяет его, если он существует, или добавляет шорткод, если он еще не зарегистрирован.
/**
* Check if a shortcode is already registered and replace it
*
* @since 1.0
*
* @return void
*/
function rc_asc_replace_shortcode() {
$shortcode = 'testimonials';
if( rc_asc_shortcode_exists( $shortcode) ) {
remove_shortcode( $shortcode );
add_shortcode( $shortcode, 'my_testimonials_function' );
} else {
add_shortcode( $shortcode, 'my_testimonials_function' );
}
}
Шаг 4. Определите новую функцию короткого кода
Все, что вам нужно сделать, это определить содержимое функции my_testimonials_shortcode (), и все готово!
/**
* Creates the new shortcode
*
* @since 1.0
*
* @return void
*/
function my_testimonials_function() {
return 'this replaces the previous shortcode!';
}
Как видите, ранее объявленный шорткод теперь заменен правильным шорткодом.
Источник записи: https://www.wpexplorer.com