Holen Sie PHP Var in Javascript-Datei (Making Plugin)

Ich machte ein Plugin und ich habe eine Javascript-Datei, wo ich einige Optionen in der database speichern möchte, um die function gut zu zeigen.

Also ich habe das:

function wp_home(){ wp_enqueue_script( 'some-name-1', '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', '1.0.0', true ); wp_enqueue_style( 'some-name-2', plugins_url( 'assets/jquery.something.css', __FILE__ ) ); wp_enqueue_script( 'some-name-3', plugins_url( 'assets/jquery.something.js', __FILE__ ), '1.0.0', true ); global $table_prefix; $dbh = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST ); $table = $table_prefix.'options'; $qd = "SELECT option_value FROM $table WHERE option_name = 'description'"; $description = $dbh->get_results( $query_link ); $description = $description[0]->option_value; //HERE I HAVE THE STRING OF $description AND I WANT TO PASS INSIDE TO CUSTOM-JS-PHP wp_enqueue_script( 'custom-name-js', plugins_url( 'assets/custom-js.php', __FILE__ ), '1.0.0', true ); } 

Die Datei custom-js.php sieht folgendermaßen aus:

   $(document).ready(function(){ $.showBox({ message: '', }); }); 

Wie kann ich die $ Beschreibung nehmen? Wenn ich das Javascript in wp_home () einfügen, funktioniert es nicht.

Vielen Dank

Solutions Collecting From Web of "Holen Sie PHP Var in Javascript-Datei (Making Plugin)"

Sie können wp_localize_script () verwenden , um PHP-Variablen an Javascript zu übergeben. Sie erstellen ein Array in PHP und übergeben es dann an die function als dritten Parameter. Es wird als ein Objekt, das Sie mit dem zweiten Parameter benennen, durchkommen.

Registrieren Sie zuerst das Skript.

wp_register_script( 'custom-name-js', plugins_url( 'assets/custom-js.php', __FILE__ ) );

Zweitens, erstellen Sie Ihr Array und führen Sie wp_localize aus.

 $my_array = array( 'description' => $description[0]->option_value ); wp_localize_script( 'custom-name-js', 'js_object_name', $my_array ); 

Schließlich fügen Sie Ihr Skript in die Warteschlange ein.

 wp_enqueue_script( 'custom-name-js' ); 

Dann haben Sie in Ihrer js-Datei ein js-Objekt mit dem Namen js_object_name (oder was auch immer Sie als zweiten Parameter an wp_localize_script übergeben) mit einer Eigenschaft der Beschreibung verfügbar.

 js_object_name.description 

Sie können diese function versuchen: wp_localize_script( $handle, $name, $data );

Siehe https://codex.wordpress.org/Function_Reference/wp_localize_script für die Dokumentation.

Wie der Codex sagt:

Obwohl die Lokalisierung hauptsächlich verwendet wird, kann sie verwendet werden, um Ihrem Skript Daten zur Verfügung zu stellen, die Sie normalerweise nur von der Server-Seite von WordPress erhalten.

Ich musste es für die Übersetzung / Lokalisierung verwenden, aber es sieht so aus, als ob es dir helfen kann, deinen dynamischen Wert in das Javascript zu “injizieren”.