сделайте шорткод() на странице администратора


Я использую несколько плагинов с короткими кодами... однако вместо того, чтобы создавать общедоступную страницу для контента, я создал несколько новых страниц в администраторе, используя add_menu_page, и мне нужно знать, как использовать do_shortcode() в этом контексте.

В нынешнем виде вся функция выдает строку. Я предполагаю, что это потому, что API шорткода недоступен на странице администратора.

Как мне обойти это? Нет никакой документации, которую я мог бы найти, что объясняет, как использовать короткие коды в администраторе WP... или если это вообще возможно.


В частности, я пытаюсь использовать короткие коды WooCommerce в администраторе WP. Я ненавижу тот факт, что плагины не используют серверную часть WP для управления учетными записями/пользователями.

Author: dcolumbus, 2012-08-11

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().

 10
Author: fuxia, 2012-08-11 23:18:45

Похоже, что API шорткода доступен в администраторе, но его вывод будет зависеть от соответствующего тега шорткода.

Встроенный [caption] работает должным образом, в то время как [embed] нет (это связано с тем, что встроенный API "лениво загружает" свой шорткод и зависит от the_content фильтра для запуска, так что технически это не ошибка API шорткода).

Вывод: Это полностью зависит от того, как и когда зарегистрирован тег, и что он делает/предполагает, когда выполненный.

@dcolumbus О каком теге мы говорим в вашем случае?

 2
Author: TheDeadMedic, 2012-08-11 22:47:59