wordpress shortcode Шоркоды и включение шаблонов (в т.ч. виджетов) в тело страницы, редактируемой в админке
Primary tabs
В functions.php вашей темы просто пишем:
function my_shortcode_call( $atts ){ include(__DIR__ . '/../../theme54000/includes/maps/shops.php'); } add_shortcode( 'center_office_map', 'my_shortcode_call' );
так мы зарегистрировали шорт код, который делает инклуд какого-то шаблона (в данном случае это JS и блок с картой, который было бы неудобно редактировать в тексте).
Далее в тексте статьи достаточно поросто добавить сам шорткод, например в редакторе в админке это может выглядеть так:
[center_office_map] <h2>Контактная информация</h2> <strong>ООО "Рога и Копыта". Учередитель: О. Бендер </strong>
Возврат значений или include
В примере выше мы просто делали инклуд шаблона, в то время как в базовом виде шортокоды должны делать ruturn строки (подробнее о них:)
Поэтому оф. документация предлагает буферизировать вывод, если html-разметки много:
function my_shortcode() { ob_start(); ?> <HTML> <here> ... <?php return ob_get_clean(); }
- но если возможность, лучше все же получать данные, а ещё лучше делать инклуд и буферезировать вывод, тогда все должно точно работать нормально, т.е. так:
//[center_office_map] function my_shortcode_call( $atts ){ ob_start(); include(__DIR__ . '/../../theme54000/includes/maps/center-office.php'); return ob_get_clean(); } add_shortcode( 'center_office_map', 'my_shortcode_call' );
- Log in to post comments
- 1438 reads