web-dev-qa-db-fra.com

Récupère l'ID de l'article actuel sous forme de variable en Javascript

J'essaie de faire écho à l'identifiant du post dans un post Javascript et de ne pas avoir de chance.

var post_id = '123';  // works fine

var post_id = '<?php global $post; echo $post->ID; ?>';  // echos 'ID; ?>'

var post_id = '<?php echo $post->ID;?>';  // echos 'ID; ?>'

Existe-t-il un moyen correct de répercuter l'ID de la publication?

1
Fid

Vous pouvez transmettre des variables à javascript à l'aide de la fonction wp_localize_script: https://codex.wordpress.org/Function_Reference/wp_localize_script

Ajouter ce qui suit à functions.php

if (! function_exists ('load_my_script')) {
 function load_my_script () {
 global $ post; 
 $ deps = array ('jquery'); 
 $ version = '1.0'; 
 $ in_footer = true; 
 wp_enqueue_script ('mon-script', get_stylesheet_directory_uri (). '/js/my-script.js', $ deps, $ version, $ in_footer); 
 wp_localize_script ('mon-script', 'mon_script_vars', tableau (
 'postID' => $ post-> ID 
) 
); 
 } 
} 
 add_action ('wp_enqueue_scripts', 'load_my_script'); 

Et votre fichier js (nom-thème/js/my-script.js):

 jQuery (document) .ready (function ($) {
 alert (my_script_vars.postID); 
}); 
 

Remarque:

Si vous essayez de passer des entiers, vous devrez appeler la fonction JavaScript parseInt ().

6
Pabamato

Il est disponible dans le champ masqué post_ID pour les publications et les nouvelles publications. Vous pouvez l'obtenir en utilisant ce code jQuery simple.

jQuery("#post_ID").val()
3
Stranger

Ok, j'ai compris. Peut-être que ça va aider quelqu'un. Dans le thème functions.php:

function pid() {

global $current_screen;
$type = $current_screen->post_type;

    ?>
    <script type="text/javascript">
    var post_id = '<?php global $post; echo $post->ID; ?>';
    </script>
    <?php

} 
add_action('wp_head','pid');
2
Fid