wp_localize_script übergibt die Daten nicht

Ich habe versucht, mit einem kleinen plugin zu arbeiten, und ich versuchte, meine Daten an js über wp_localize_script aber wenn ich console.log() innerhalb meiner js mache, gibt es undefined .

Kann mir jemand sagen, was ich hier falsch mache?

 $shortcode_data = array(); /*Fetching the plugin directoryt path*/ $dir = plugin_dir_url( __FILE__ ); // Let's create the before after shortcode First add_shortcode('before_after', function( $atts ) { //extracting the shortcode attributes global $shortcode_data; $shortcode_data = shortcode_atts( array( 'slide' => 5, // max 7 'src1_org' => null, 'src1_new' => null, 'src2_org' => null, 'src2_new' => null ), $atts ); extract($shortcode_data); //... do my work with the variables }); //Let's include the CSS & JS scripts add_action( 'wp_enqueue_scripts', function() { global $dir; global $shortcode_data; /*CSS*/ wp_enqueue_style( 'custom_style', $dir . 'assets/css/custom.css', null, null ); /*JS*/ wp_register_script ('custom_script', $dir . 'assets/js/custom.js'); wp_localize_script( 'custom_script', 'ismSliderData', $shortcode_data ); // this line supposed to send all of my shortcode variables to the js but it is not doing that wp_enqueue_script( 'custom_script', true ); }); 

Jede Hilfe wird sehr geschätzt.

Solutions Collecting From Web of "wp_localize_script übergibt die Daten nicht"

So wie es wp_enqueue_scripts , wird Ihr wp_enqueue_scripts nach wp_enqueue_scripts – wenn der Post-Inhalt ausgegeben wird. Aus diesem Grund sind die Daten für Ihre Skripte während wp_enqueue_scripts für wp_localize_script nicht verfügbar.

wp_enqueue_script( string $handle, string $src = false, array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )

Du würdest;

A ) Müssen Sie Ihre Shortcode-Attribute im Voraus sammeln.

B ) Setzen Sie Ihr benutzerdefiniertes Skript in die Fußzeile und geben Sie -Daten während der Ausgabe des Shortcodes aus.

C ) Setzen Sie Ihr benutzerdefiniertes Skript in die Fußzeile und geben Sie inline js während wp_print_footer_scripts . Möglicherweise müssen Sie Ihre benutzerdefinierten Skripts in Schließungen einfügen, die ausgeführt werden, nachdem Localize hinzugefügt wurde.

D ) Locallize während des Shortcodes


Hier ist ein Beispiel für die Lokalisierung während des Shortcodes:

 function some_shortcode( $atts ) { $data = shortcode_atts( array ( 'arrows' => TRUE ), $atts ); wp_enqueue_script( 'your_script_name' ); wp_localize_script( 'your_script_name', 'yourScriptObject', $data ); return 'a string of whatever'; }