do_shortcode () dans la page d'administration

11

J'utilise quelques plugins qui ont des codes abrégés ... cependant, au lieu de créer une page publique pour le contenu, j'ai créé de nouvelles pages au sein de l'administrateur en utilisant add_menu_page et j'ai besoin de savoir comment utiliser do_shortcode() dans ce contexte.

À l'heure actuelle, toute la fonction crache la chaîne. Je suppose que c'est parce que l'API shortcode n'est pas disponible dans une page d'administration.

Comment puis-je contourner cela? Je ne trouve aucune documentation qui explique comment utiliser les codes abrégés dans WP Admin ... ou même si cela est possible.

Plus précisément, j'essaie d'utiliser des codes abrégés WooCommerce au sein de l'administrateur de WP. Je déteste le fait que les plugins n'utilisent pas le backend WP pour la gestion des comptes / utilisateurs.

    
posée dcolumbus 11.08.2012 - 23:26

2 réponses

9

Au lieu d'appeler do_shortcode() , appelez simplement la fonction associée au shortcode.

Exemple

Il existe un shortcode nommé [example] et une fonction enregistrée en tant que gestionnaire de shortcode:

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

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

Dans votre page d'administration, vous appelez simplement la fonction:

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

Résultat: This works! .

Plus rapide et plus fiable que do_shortcode() .

    
réponse donnée fuxia 12.08.2012 - 01:01
2

Il semble que l'API shortcode soit disponible dans l'administrateur, mais sa sortie dépendra de la balise shortcode en question.

Le [caption] intégré fonctionne comme prévu, alors que [embed] ne fonctionne pas (ceci est dû à la façon dont l'API incorporée "charge paresseux" son shortcode et dépend du filtre the_content à exécuter, donc techniquement pas la faute de l’API shortcode).

Conclusion: tout dépend de la façon dont & lorsque la balise est enregistrée et ce qu’elle fait / suppose lorsqu’elle est exécutée.

@dcolumbus De quelle balise parlons-nous dans votre cas?

    
réponse donnée TheDeadMedic 12.08.2012 - 00:47

Lire d'autres questions sur les étiquettes