it-swarm.com.de

Verwendung von wp_enqueue_script im Shortcode-Funktionshandler

Ich habe diesen Code

function this_is_my_shortcode(){
    wp_register_script('per-pas-belanja-online', plugins_url('js/per-pas-belanja-online.js', __FILE__), array('jquery'), '1.0.0');
    wp_enqueue_script('per-pas-belanja-online');
    return '<div id="poppedout">Blah</div>';
}
add_shortcode('bubba', 'this_is_my_shortcode');

Das div wird auf der Seite angezeigt, das Skript jedoch nicht. Welchen Fehler habe ich gemacht?

4
Permana

Direkt aus dem Codex

Verwenden Sie die Aktion wp_enqueue_scripts, um diese Funktion aufzurufen, oder admin_enqueue_scripts, um sie auf der Administratorseite aufzurufen. Das Aufrufen von outside einer Aktion kann zu Problemen führen.

2
kaiser

Wie @Bainternet mit 3.3 ausführte, sollte es für js gut funktionieren (beschrieben von scribu here ). Für diejenigen, die CSS auch bedingt laden möchten, ist es immer noch schwierig, aber diese beiden Artikel von beerpla und einer von iandunn sollten den Weg ebnen.

2
orionrush

Sie sollten Skripte wie folgt in die Warteschlange stellen:

function this_is_my_shortcode(){
    add_action('wp_enqueue_scripts', function() {
        wp_register_script('per-pas-belanja-online', plugins_url('js/per-pas-belanja-online.js', __FILE__), array('jquery'), '1.0.0');
        wp_enqueue_script('per-pas-belanja-online');
    });
    return '<div id="poppedout">Blah</div>';
}
add_shortcode('bubba', 'this_is_my_shortcode');
0
Hamed Moodi