Создание шорткода
Шорткоды очень удобная функция WP. Одним из важнейших преимуществ является то, что если по каким-либо причинам сама функция не работает или отсутствует — ошибки не произойдет. Шорткод перестанет ее исполнять и выведется как простой текст.
add_shortcode( 'name-shortcode', 'name-function' );
name-shortcode — название шорткода (то что пишется в квадратных скобках при вызове)
name-function — название функции (уже имеющейся, либо создать функцию с этим названием)
Добавление всех зарегистрированных шорткодов в панель редактирования в functions.php
// Добавление всех зарегистрированных шорткодов в панель редактирования
add_action('media_buttons','add_sc_select',11);
function add_sc_select(){
global $shortcode_tags;
$exclude = array("wp_caption", "embed"); // enter names of shortcode to exclude bellow
echo ' <select id="sc_select"><option>Shortcode</option>';
foreach ($shortcode_tags as $key => $val){
if(!in_array($key,$exclude)){
$shortcodes_list .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>';
}
}
echo $shortcodes_list;
echo '</select>';
}
add_action('admin_head', 'button_js');
function button_js() {
echo '<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#sc_select").change(function() {
send_to_editor(jQuery("#sc_select :selected").val());
return false;
});
});
</script>';
}
Просто вывести список шорткодов в шаблоне можно командой:
<?php global $shortcode_tags;
echo '<pre>';
print_r($shortcode_tags);
echo '</pre>'; ?>
Шорткоды в виджетах
По умолчанию WordPress не разрешает использовать шорткоды в виджетах, но этот запрет можно обойти с помощью фильтра, который надо добавить в тот же файл functions.php:
add_filter('widget_text', 'do_shortcode');
Шорткоды в файлах
Для вставки шорткода в файл php придется квадратные скобки и их содержимое поместить в специальный php-контейнер:
<?php echo do_shortcode('[shortcode]');?>
Отключаем ненужные шорткоды
Вставляем в файл functions.php
add_shortcode( 'site-banners', '__return_false' );