Для создания произвольных шорткодов в WordPress я использую отличный плагин Shortcoder. Главными преимуществами этого плагина является возможность не только создавать свои шорткоды (в т.ч. и с JavaScript!)и управлять ими из админки WordPress, но также передавать параметры в шорткод и указывать их через редактор WordPress. В некоторых случаях, эта опция просто незаменима.
Более подробно возможности этого плагина я распишу в следующей статье, а сейчас расскажу как исправить внезапно возникшую проблему в WordPress 4.4.
По-умолчанию, вставляемый в записи шорткод, созданный с помощью плагина Shortcoder выглядит следующим образом — [sc:shortcode_name].
Однако, с выходом WordPress 4.4, эта комбинация перестанет работать. Причиной этому является отказ в новой версии WP поддерживать двоеточия и прочие специальные символы в именах шорткодов. Не знаю с какой целью это было сделано, но факт остается фактом. Естественно, используемое двоеточие в имени шорткода сразу же повлекло за собой полное отключение функционала плагина.
Можно было бы, конечно, искать замену Shortcoder, но плагин на диво хорош и хотя автор не успел выпустить к нему своевременное обновление, пришлось искать способ решить проблему.
По результатам поисков, решений нашлось два:
1. Вставить в файл functions.php следующий код
function sc_replacecolon( $content ){ return str_replace( '[sc:', '[sc name=', $content ); } add_filter( 'the_content', 'sc_replacecolon', 5 );
2. Провести замену в БД сайта
Для этого нам понадобится PHPmyAdmin, во вкладке SQL которого необходимо сделать следующий запрос на замену:
UPDATE wp_posts SET post_content = replace(post_content, "[sc:", "[sc name=");
Если помимо тела записи, вы используете шорткоды и в врезках (как это сделано у меня), необходимо сделать аналогичный запрос, но уже для другой таблицы:
UPDATE wp_posts SET post_excerpt = replace(post_excerpt, "[sc:", "[sc name=");
Я воспользовался вторым методом, поскольку, скажу честно, мне было лень искать причину, по которой указанный в первом решении PHP-код не срабатывал во врезках, а кроме того — двоеточие все равно не поддерживается и даже когда автор выпустит обновление, все равно уже придется менять вывод шорткодов в записях.
UPD: в версии 3.4.1, автор устранил данную проблему. Однако изменить шорткоды вам все равно придется.