do_shortcode () dentro de la página de administración

11

Estoy usando algunos complementos que tienen códigos cortos ... sin embargo, en lugar de crear una página pública para el contenido, he creado algunas páginas nuevas dentro del administrador usando add_menu_page y necesito saber cómo utilizar do_shortcode() en este contexto.

En su estado actual, toda la función escupe la cadena. Supongo que es porque la API de shortcode no está disponible dentro de una página de administración.

¿Cómo puedo evitar esto? No hay documentación que pueda encontrar que explique cómo utilizar códigos cortos en el Administrador de WP ... o si es posible.

Específicamente estoy tratando de utilizar códigos cortos de WooCommerce dentro del Administrador de WP. Odio el hecho de que los complementos no utilicen el Backend WP para la administración de cuentas / usuarios.

    
pregunta dcolumbus 11.08.2012 - 23:26

2 respuestas

9

En lugar de llamar a do_shortcode() , simplemente llame a la función asociada con el código abreviado.

Ejemplo

Hay un shortcode llamado [example] y una función registrada como manejador de shortcode:

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

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

En la página de administración, solo llama a la función:

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

Salida: This works! .

Más rápido y más confiable que do_shortcode() .

    
respondido por el fuxia 12.08.2012 - 01:01
2

Parece que la API de shortcode está disponible en el administrador, pero su salida dependerá de la etiqueta de shortcode en cuestión.

El [caption] incorporado funciona como se esperaba, mientras que [embed] no lo hace (esto se debe a que la API incrustada "carga perezosa" es el código corto, y depende del filtro the_content para ejecutarse, por lo que técnicamente no es culpa de la API de shortcode).

Conclusión: depende completamente de cómo & cuando la etiqueta se registra, y lo que hace / asume cuando se ejecuta.

@dcolumbus ¿De qué etiqueta estamos hablando en tu caso?

    
respondido por el TheDeadMedic 12.08.2012 - 00:47

Lea otras preguntas en las etiquetas