do_shortcode () dentro da Página Admin

11

Estou usando alguns plug-ins que possuem códigos de acesso ... no entanto, em vez de criar uma página pública para o conteúdo, criei algumas novas páginas no administrador usando add_menu_page e preciso saber como utilizar do_shortcode() neste contexto.

Como está, toda a função cuspiu a string. Estou assumindo que é porque a API shortcode não está disponível em uma página de administração.

Como faço para contornar isso? Não há documentação que eu possa encontrar que explique como utilizar códigos de acesso dentro do Administrador do WP ... ou se é possível.

Especificamente, estou tentando utilizar os códigos de acesso do WooCommerce no WP Admin. Eu odeio o fato de que plugins não utilizam o Backend WP para gerenciamento de conta / usuário.

    
por dcolumbus 11.08.2012 / 23:26

2 respostas

9

Em vez de chamar do_shortcode() , basta chamar a função associada ao shortcode.

Exemplo

Existe um shortcode chamado [example] e uma função registrada como manipulador shortcode:

function example_shortcode( $atts = array(), $content = '' )
{
    extract( 
            shortcode_atts( 
            array (
            'before' => '',
            'after' => '',
            ), 
            $atts 
       )
   );

    return $before . $content . $after;
}
add_shortcode( 'example', 'example_shortcode' );

Na sua página de administração, você acabou de chamar a função:

echo example_shortcode( 
    array ( 'before' => 'This ', 'after' => '!' ), 
    'works' 
);

Saída: This works! .

Mais rápido e confiável do que do_shortcode() .

    
por fuxia 12.08.2012 / 01:01
2

Parece que a API shortcode é disponível no admin, mas sua saída dependerá da tag shortcode em questão.

O [caption] integrado funciona como esperado, enquanto [embed] não (isso se deve a como a API incorporada "carrega com preguiça" é shortcode e depende do filtro the_content para ser executado, portanto, tecnicamente não a falha da API de shortcode).

Conclusão: é totalmente dependente de como & quando a tag é registrada e o que ela faz / assume quando executada.

@dcolumbus De qual tag estamos falando no seu caso?

    
por TheDeadMedic 12.08.2012 / 00:47