wake-up-neo.com

verwendung von wp_localize_script in verwendeten Seitenvorlagen

Ich habe die Vorlage namens Homepage, die der Homepage und dem Ende einer Vorlage zugewiesen ist, für die ich ein Skript-Tag habe. jetzt möchte ich meinen json in diesem script tag verwenden.

home-template.php

add_action('wp_enqueue_scripts', 'pass_var_to_js',99);
function pass_var_to_js() {

// Localize the script with new data
$translation_array = array(
'popularDestination' => json_encode($data['POPULAR DESTINATIONS']),
);
wp_localize_script( 'home_page_json', 'home', $translation_array );

// Enqueued script with localized data.
wp_enqueue_script( 'home_page_json' );
}

<script type="text/javascript">
 var data = home.popularDestination;
</script>

aber wp_localize_script nicht auf meiner seite geladen ich überprüfe view-source. wird nicht angezeigt.

entschuldige mein schlechtes Englisch.

1
Bhautik

Basierend auf dem Code sieht es so aus, als ob Sie falsch verstehen, wie wp_localize_script funktioniert. Die Signatur der Funktion sieht folgendermaßen aus:

wp_localize_script( $handle, $name, $data );

Dabei ist $handle der Name einer von Ihnen registrierten oder in die Warteschlange gestellten JavaScript-Datei vor , die wp_localize_script aufruft. Schauen Sie sich das Beispiel im Codex an (ich habe unten Zeilennummern hinzugefügt):

1: <?php
2: 
3: // Register the script
4: wp_register_script( 'some_handle', 'path/to/myscript.js' );
5: 
6: // Localize the script with new data
7:  $translation_array = array(
8:    'some_string' => __( 'Some string to translate', 'plugin-domain' ),
9:    'a_value' => '10'
10: );
11: wp_localize_script( 'some_handle', 'object_name', $translation_array );
12: 
13: // Enqueued script with localized data.
14: wp_enqueue_script( 'some_handle' );
  1. Schauen Sie sich die obige Zeile 4 an. Zunächst wird eine JavaScript-Datei mit dem $handle'some_handle' registriert.

  2. Als nächstes wird in Zeile 11 wp_localize_script() verwendet, um die Lokalisierungsdaten für das in Zeile 4 registrierte Skript-Handle 'some_handle' zu registrieren.

  3. Schließlich wird in Zeile 14 die in Zeile 4 registrierte JavaScript-Datei in die Warteschlange gestellt. Da wp_localize_script() derselbe $handle übergeben wurde, der in Zeile 4 registriert ist, werden die lokalisierten Daten von WordPress automatisch auf jeder Seite eingefügt, die wp_enqueue_script( 'some_handle' ); aufgerufen wird.

Mit anderen Worten, Sie müssen wp_localize_script mit einer registrierten JavaScript-Datei verwenden. Nicht von alleine, wie Sie es gerade tun.

Dieses Zitat aus dem Abschnitt Notizen sagt mehr oder weniger das Gleiche:

WICHTIG! wp_localize_script () MUSS aufgerufen werden, nachdem das Skript mit wp_register_script () oder wp_enqueue_script () registriert wurde.


Ich glaube auch nicht, dass Sie json_encode() Ihren $data benötigen. WordPress sollte das für Sie tun.

3
DaveLak