сделайте шорткод() на странице администратора
Я использую несколько плагинов с короткими кодами... однако вместо того, чтобы создавать общедоступную страницу для контента, я создал несколько новых страниц в администраторе, используя add_menu_page
, и мне нужно знать, как использовать do_shortcode()
в этом контексте.
В нынешнем виде вся функция выдает строку. Я предполагаю, что это потому, что API шорткода недоступен на странице администратора.
Как мне обойти это? Нет никакой документации, которую я мог бы найти, что объясняет, как использовать короткие коды в администраторе WP... или если это вообще возможно.
В частности, я пытаюсь использовать короткие коды WooCommerce в администраторе WP. Я ненавижу тот факт, что плагины не используют серверную часть WP для управления учетными записями/пользователями.
2 answers
Вместо вызова do_shortcode()
просто вызовите функцию, связанную с шорткодом.
Пример
Существует шорткод с именем [example]
и функция, зарегистрированная как обработчик шорткода:
function example_shortcode( $atts = array(), $content = '' )
{
extract(
shortcode_atts(
array (
'before' => '',
'after' => '',
),
$atts
)
);
return $before . $content . $after;
}
add_shortcode( 'example', 'example_shortcode' );
На странице администратора вы просто вызываете функцию:
echo example_shortcode(
array ( 'before' => 'This ', 'after' => '!' ),
'works'
);
Вывод: This works!
.
Быстрее и надежнее, чем do_shortcode()
.
Похоже, что API шорткода доступен в администраторе, но его вывод будет зависеть от соответствующего тега шорткода.
Встроенный [caption]
работает должным образом, в то время как [embed]
нет (это связано с тем, что встроенный API "лениво загружает" свой шорткод и зависит от the_content
фильтра для запуска, так что технически это не ошибка API шорткода).
Вывод: Это полностью зависит от того, как и когда зарегистрирован тег, и что он делает/предполагает, когда выполненный.
@dcolumbus О каком теге мы говорим в вашем случае?