Come ottenere l'ID della pagina corrente fuori dal loop?

17 set 2014, 16:55:31
Visualizzazioni: 281K
Voti: 59

Come ottenere l'ID della pagina corrente fuori dal loop?

9
Commenti

Strano, come stai usando il codice, cosa hai provato. Quali errori stai ricevendo. Così com'è, è difficile aiutarti e tutte le risposte sono un colpo nel buio. Per favore, effettua una [modifica]

Pieter Goosen Pieter Goosen
17 set 2014 17:06:45

<?php global $post; $thePostID=$post->ID;?> <?php elseif($thePostID==35) : ?>

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 set 2014 17:12:55

Per favore, effettua una [modifica] con tutto il codice/informazioni aggiuntive. Non usare la sezione commenti per cose che dovrebbero essere nella tua domanda :-)

Pieter Goosen Pieter Goosen
17 set 2014 17:14:17

Il tuo post è stato automaticamente segnalato come di bassa qualità, per favore rispetta le mie richieste sopra :-)

Pieter Goosen Pieter Goosen
17 set 2014 17:15:23

Non sto ricevendo alcun errore, in realtà voglio visualizzare Google Maps sulla mia pagina, ma la mappa non viene visualizzata...

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 set 2014 17:17:52

In header.php sto usando if else per mostrare in base agli ID delle pagine

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 set 2014 17:18:35

Come ho detto, tutte queste informazioni dovrebbero essere inserite nella tua domanda, non nella sezione commenti. Per favore [modifica] la tua domanda

Pieter Goosen Pieter Goosen
17 set 2014 17:19:52

Caro @Programmer, per favore leggi [ask]. Hai ricevuto segnalazioni automatiche sulla qualità del tuo post. Hai ricevuto suggerimenti su come risolvere il problema. Per favore cerca di superare questo ostacolo così che la tua domanda possa rimanere aperta e tu non riceva voti negativi. Grazie.

kaiser kaiser
12 gen 2015 17:26:52

Hai già accettato una risposta ma la risposta corretta (probabilmente una domanda duplicata) è qui: http://wordpress.stackexchange.com/a/109468/21376

s_ha_dum s_ha_dum
19 ago 2015 17:00:47
Mostra i restanti 4 commenti
Tutte le risposte alla domanda 5
5
89

Puoi semplicemente fare,

$page_id = get_queried_object_id();
7 mag 2018 19:44:53
Commenti

Questo dovrebbe essere contrassegnato come la risposta...

Lezz Lezz
28 gen 2020 11:59:27

Concordo. Questa dovrebbe essere la risposta.

CJWEB CJWEB
8 mar 2020 06:44:35

Sicuramente dovrebbe essere la risposta giusta. Sto cercando di ottenere l'ID corrente di un post o di una pagina, e questo è l'unico modo che mi fornisce l'ID corretto senza dover codificare manualmente le condizioni.

Felipe Rugai Felipe Rugai
22 mag 2020 18:38:11

Brillante, risposta perfetta per me

Nuno Sarmento Nuno Sarmento
20 nov 2020 00:41:38

Grazie. Ottima risposta.

return_false return_false
7 giu 2021 18:05:58
5
85

Prova

global $post;
echo $post->ID; // Visualizza l'ID del post

oppure (Non conosco la differenza)

global $wp_query;
echo $wp_query->post->ID; // Visualizza l'ID del post attraverso l'oggetto query
17 set 2014 16:58:39
Commenti

ho provato tutte le soluzioni trovate su google ma non è successo nulla

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 set 2014 17:01:05

è difficile sapere quali sono "tutte le soluzioni che hai trovato" :) assicurati che il codice sia in una funzione, che tu stia chiamando quella funzione e inizia il debug con l'echo di qualcos'altro che deve essere visibile...

caramba caramba
17 set 2014 17:04:55

non sono riuscito ad ottenere l'id usando la funzione, e le "soluzioni" sono global $wp_query; $thePostID = $wp_query->post->ID;

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

global $wp_query; $page = $wp_query->get_queried_object(); $page_id = $page->ID;

$page_id = get_queried_object_id();

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 set 2014 17:09:39

la prima era corretta...

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 set 2014 17:39:18

Queste soluzioni ti daranno l'ID della pagina solo se utilizzate prima dell'inizio del Loop. Una volta che il Loop inizia, $post verrà impostato su ciascun post nel Loop a turno.

s_ha_dum s_ha_dum
19 ago 2015 16:59:14
2

Per coloro a cui questo non funziona ancora, dovrete utilizzare qualche tipo di add_action (potete scegliere quale volete usare). Nel mio esempio, questo restituirà l'ID della pagina corrente senza problemi, indipendentemente dal fatto che sia in una cartella di plugin, nel file functions.php o altrove.

add_action('template_redirect', 'showid');

function showid(){
    global $wp_query;
    $theid = intval($wp_query->queried_object->ID);
    echo $theid;
}

Buona fortuna e buon coding!

6 ago 2021 13:14:53
Commenti

Perché questa risposta è stata votata negativamente?

crs1138 crs1138
22 ott 2021 13:09:21

Sono d'accordo, questo è l'unico metodo che ha funzionato per me. Avevo bisogno di verificare se la pagina o il post corrente si trova in una categoria e forzare un reindirizzamento in tal caso, ma dovevo farlo prima del loop. Questo action hook è ciò che mi serviva per far funzionare l'oggetto interrogato.

Kai Qing Kai Qing
20 set 2024 22:51:09
2

Al di fuori del loop:

$current_page = get_page_by_path($_SERVER['REQUEST_URI']);
            
if(isset($current_page->ID)) {
    $current_page_id = $current_page->ID;
}
28 giu 2022 17:02:41
Commenti

Sembra che dovrebbe funzionare, ma penso che gli altri approcci siano più semplici. E sono preoccupato che questo possa generare una richiesta al database.

Rup Rup
30 giu 2022 00:51:01

Questo non funzionerà quando si crea una nuova pagina.

Tahi Reu Tahi Reu
7 apr 2023 12:42:36
0

Fuori dal loop:

  //ricordati di chiamare wp_reset_postdata(); dopo il ciclo while
  // altrimenti otterrai un ID errato.
   global $post;
   $post_id =  $post->ID;

Dentro il loop:

while (have_posts()) {
    the_post();
    $post_id = the_ID();
}
3 mar 2022 12:45:38