Cum să obții ID-ul paginii curente în afara buclei?

17 sept. 2014, 16:55:31
Vizualizări: 281K
Voturi: 59

Cum să obții ID-ul paginii curente în afara buclei?

9
Comentarii

Ciudat, cum folosești codul, ce ai încercat. Ce erori primești. În acest moment, este dificil să te ajutăm și toate răspunsurile sunt ca niște focuri în întuneric. Te rog să faci o [editare]

Pieter Goosen Pieter Goosen
17 sept. 2014 17:06:45

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

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 sept. 2014 17:12:55

Te rog să faci o [editare] cu tot codul/informațiile suplimentare. Nu folosi secțiunea de comentarii pentru lucruri care ar trebui să fie în întrebarea ta :-)

Pieter Goosen Pieter Goosen
17 sept. 2014 17:14:17

Postarea dvs. a fost semnalată automat ca fiind de calitate scăzută, vă rugăm să respectați solicitările mele de mai sus :-)

Pieter Goosen Pieter Goosen
17 sept. 2014 17:15:23

Nu primesc nicio eroare, de fapt vreau să afișez harta Google pe pagina mea, însă harta nu se afișează...

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 sept. 2014 17:17:52

În header.php folosesc if else pentru afișare în funcție de ID-urile paginilor

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 sept. 2014 17:18:35

După cum am spus, toate acele informații ar trebui să fie în întrebarea ta, nu în secțiunea de comentarii. Te rog să [editezi] întrebarea ta

Pieter Goosen Pieter Goosen
17 sept. 2014 17:19:52

Dragă @Programmer, te rog să citești [ask]. Ai primit semnalizări automate despre calitatea postării tale. Ai primit sugestii despre cum să remediezi asta. Te rog să încerci să depășești acest aspect pentru ca întrebarea ta să rămână deschisă și să nu primești voturi negative. Mulțumesc.

kaiser kaiser
12 ian. 2015 17:26:52

Ai acceptat deja un răspuns, dar răspunsul corect (posibil o întrebare duplicat) este aici: http://wordpress.stackexchange.com/a/109468/21376

s_ha_dum s_ha_dum
19 aug. 2015 17:00:47
Arată celelalte 4 comentarii
Toate răspunsurile la întrebare 5
5
89

Poți face pur și simplu,

$page_id = get_queried_object_id();
7 mai 2018 19:44:53
Comentarii

Acest răspuns ar trebui marcat ca fiind corect...

Lezz Lezz
28 ian. 2020 11:59:27

De acord. Acesta ar trebui să fie răspunsul.

CJWEB CJWEB
8 mar. 2020 06:44:35

Cu siguranță acesta ar trebui să fie răspunsul corect. Încerc să obțin ID-ul curent al unei postări sau pagini, și aceasta este singura metodă care îmi oferă ID-ul corect fără a fi nevoit să codific condiții.

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

Genial, răspunsul potrivit pentru mine

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

Mulțumesc. Răspuns excelent.

return_false return_false
7 iun. 2021 18:05:58
5
85

Încearcă

global $post;
echo $post->ID;

sau (nu cunosc diferența)

global $wp_query;
echo $wp_query->post->ID;
17 sept. 2014 16:58:39
Comentarii

am încercat toate lucrurile găsite pe google, dar nimic nu a funcționat

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 sept. 2014 17:01:05

e greu să știm ce anume înseamnă "toate lucrurile găsite" :) asigură-te că acel cod este într-o funcție, că apelezi acea funcție și începe procesul de depanare afișând altceva înainte, ceva ce trebuie să fie vizibil...

caramba caramba
17 sept. 2014 17:04:55

nu am obținut id-ul folosind funcția, iar "lucrurile" sunt 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 sept. 2014 17:09:39

primul a fost corect...

Muhammad Shoaib Murtaza Muhammad Shoaib Murtaza
17 sept. 2014 17:39:18

Aceste soluții vă vor oferi ID-ul paginii doar dacă sunt folosite înainte de începerea Buclei (Loop). Odată ce Bucla începe, $post va fi setat pentru fiecare articol din Buclă pe rând.

s_ha_dum s_ha_dum
19 aug. 2015 16:59:14
2

Pentru cei dintre voi pentru care acest lucru încă nu funcționează, va trebui să utilizați o formă de add_action (puteți alege pe care doriți să o folosiți). În exemplul meu, acesta va returna ID-ul paginii curente fără probleme, indiferent dacă este într-un folder de plugin, în functions.php sau în altă parte.

add_action('template_redirect', 'showid');

function showid(){
    global $wp_query;
    $theid = intval($wp_query->queried_object->ID);
    echo $theid; // afișează ID-ul paginii curente
}

Succes și spor la programare!

6 aug. 2021 13:14:53
Comentarii

De ce a fost votat negativ acest răspuns?

crs1138 crs1138
22 oct. 2021 13:09:21

Sunt de acord, acesta este singurul care a funcționat pentru mine. Aveam nevoie să verific dacă pagina sau articolul curent se află într-o categorie și să forțez o redirecționare dacă era, dar să fac asta înainte de buclă. Acest hook de acțiune este ceea ce aveam nevoie pentru a face obiectul interogat să funcționeze pentru mine.

Kai Qing Kai Qing
20 sept. 2024 22:51:09
2

În afara buclei:

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

Pare că ar trebui să funcționeze, dar cred că celelalte abordări sunt mai simple. Și sunt neliniștit că acest lucru ar putea face o solicitare către baza de date.

Rup Rup
30 iun. 2022 00:51:01

Acest lucru nu va funcționa când creați o pagină nouă.

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

În afara buclei :

  //nu uitați să apelați wp_reset_postdata(); după bucla while
  // altfel veți obține un ID greșit.
   global $post;
   $post_id =  $post->ID;

În interiorul buclei:

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