Ottenere l'ID del post corrente in functions.php

9 apr 2014, 12:43:54
Visualizzazioni: 47.6K
Voti: 7

Ho una funzione wp_localize_script() nel mio functions.php dove ho bisogno di passare l'ID del post corrente a un file jQuery. Mi chiedevo quindi come ottenere l'ID del post corrente nel file functions.php.

Questi metodi non funzionano:

global $post;
$post_id = $post->ID;

global $wp_query;
$post_id = $wp_query->get_queried_object_id();
0
Tutte le risposte alla domanda 1
2
12

Se colleghi la tua funzione di script localizzato a wp_enqueue_scripts, avrai accesso alla variabile global $post. Purché tu scelga un hook al momento o dopo 'wp', dovresti avere accesso alla global $post.

<?php
add_action('wp_enqueue_scripts', 'YOUR_NAME_scripts'); 

function YOUR_NAME_scripts() {

            wp_enqueue_script('YOUR_NAME-js');

            global $post;
            $params = array(
                'site_url' => site_url(),
                'admin_ajax_url' => admin_url('admin-ajax.php'),
                'post_id' => $post->ID
            );

            wp_localize_script( 'jquery', 'YOUR_NAME', $params );

}
9 apr 2014 16:07:44
Commenti

Esiste qualche altra soluzione alternativa, come una funzione autonoma ad esempio, invece che all'interno di wp_enqueue_scripts?

Manolis Manolis
17 set 2014 16:04:21

Sì, puoi semplicemente agganciarti a wp_head e stampare i tag script con var post_id = <?php echo $post->ID;?>; Assicurati solo di usare prima global $post;. Oppure puoi stampare i tuoi tag script ovunque nel Template di Pagina/Articolo se preferisci.

Douglas.Sesar Douglas.Sesar
17 set 2014 18:44:08