it-swarm.com.de

do_shortcode () innerhalb der Admin-Seite

Ich verwende einige Plugins mit Shortcodes. Anstatt jedoch eine öffentliche Seite für den Inhalt zu erstellen, habe ich mit add_menu_page einige neue Seiten innerhalb des Administrators erstellt, und ich muss wissen, wie man do_shortcode() in diesem Kontext verwendet.

So wie es aussieht, spuckt die gesamte Funktion den String aus. Ich gehe davon aus, dass die Shortcode-API auf einer Admin-Seite nicht verfügbar ist.

Wie komme ich darum herum? Es gibt keine Dokumentation, die erklärt, wie man Shortcodes im WP Admin verwendet ... oder ob es überhaupt möglich ist.


Insbesondere versuche ich, WooCommerce-Shortcodes im Admin-Bereich WP zu verwenden. Ich hasse die Tatsache, dass Plugins das WP Backend nicht für die Konto-/Benutzerverwaltung verwenden.

11
dcolumbus

Anstatt do_shortcode() aufzurufen, rufen Sie einfach die mit dem Shortcode verknüpfte Funktion auf.

Beispiel

Es gibt einen Shortcode namens [example] und eine Funktion, die als Shortcode-Handler registriert ist:

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

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

In Ihrer Admin-Seite rufen Sie einfach die Funktion auf:

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

Ausgabe: This works!.

Schneller und zuverlässiger als do_shortcode().

9
fuxia

Es scheint, dass die Shortcode-APIim Admin verfügbar ist, aber ihre Ausgabe hängt vom fraglichen Shortcode-Tag ab.

Der integrierte [caption] funktioniert wie erwartet, während [embed] dies nicht tut (dies liegt daran, wie die eingebettete API den Shortcode "träge lädt" und davon abhängt, dass der the_content-Filter ausgeführt wird, also technisch nicht der Fehler der Shortcode-API).

Fazit: Es hängt ganz davon ab, wie und wann das Tag registriert ist und was es bei der Ausführung tut/annimmt.

@dcolumbus Von welchem ​​Tag sprechen wir in Ihrem Fall?

2
TheDeadMedic