$ post-> ID affiche une mauvaise ID
-
-
Essayez-vous simplement d'obtenir cet ID spécifique ou souhaitez-vous disposer d'une _fonctionnalitégénérale_traitant des ID?Si lepremierest le cas,vouspouvez utiliser `get_option ('page_for_posts');`.Are you just trying to get that specific ID, or do you want to have some _general functionality_ dealing with the IDs? If the first is the case, you could use `get_option('page_for_posts');`.
- 1
- 2013-08-08
- tfrommen
-
J'essayais d'obtenir la valeur de lamétabox,donc lafonctionnalitégénéraletraitant desidentifiants,detoutefaçon c'est résolumaintenant,mercipour votretemps!I was trying to get metabox value, so general functionality dealing with the IDs, anyways it's resolved now, thanks for your time!
- 0
- 2013-08-08
- Wordpressor
-
Voici unfil similaire: https://wordpress.stackexchange.com/questions/150192/at-my-posts-archive-page-outside-the-loop-get-the-id-returns-the-top-most-poHere's a similar thread: https://wordpress.stackexchange.com/questions/150192/at-my-posts-archive-page-outside-the-loop-get-the-id-returns-the-top-most-po
- 0
- 2019-03-05
- Pikamander2
-
1 réponses
- votes
-
- 2013-08-08
Sur cettepage,$post-> ID renvoie l'ID dupremier article deblogpour une page.
Voilà comment celafonctionne.
$post
est défini sur lepremiermessage de laboucle. Sur des articleset despages uniques qui sontidentiques à l'article ou à lapage. Sur lespages d'archives,il s'agit dupremiermessage de l'ensemble de résultats. Et si vouspensez à cela,les deux sont vraiment lamême chose. Les articleset pages uniquesn'ont qu'un seul résultat dans l'ensemble qui correspond à l'article ou à lapage que vous attendez.Maintenant,lapartie laplus délicate,j'aiessayé de supprimertoutes lesboucles detousmes pages,fichier loop.phptotalementeffacé,désactivétous les widgets qui pourrait avoir affecté $postet il renvoietoujours lemauvais ID.
La requêteprincipale s'exécute avant le chargement de votremodèleet
$post
est défini dans ceprocessus. La suppression d'éléments dumodèlene changera rien à cela.Des conseils?
Oui. Ne comptezpas sur
$post
sauf dans uneboucle appropriée. Si vous avezbesoin d'informations sur lapageelle-même,utilisez:$pobj = get_queried_object(); var_dump($pobj); // debugging
Référence:
http://codex.wordpress.org/Function_Reference/get_queried_object
On that page $post->ID returns the ID of first blog post for given page.
That is how it works.
$post
is set to the first post in the Loop. On single posts and pages that is the same as the post or page. On archive pages it is the first post in the result set. And if you think about that, both are really the same thing. Single posts and pages only have one result in the set which happens to match the post or page that you expect.Now, the tricky part, I've tried to remove all the loops from all my pages, totally erased loop.php file, disabled all the widgets that might have been affecting $post and it still returns the wrong ID.
The main query runs before your template loads and
$post
is set in that process. Removing things from the template won't change that.Any hints?
Yes. Don't rely on
$post
except inside a proper Loop. If you need information about the page itself use:$pobj = get_queried_object(); var_dump($pobj); // debugging
Reference:
http://codex.wordpress.org/Function_Reference/get_queried_object
-
Intelligent,je n'aijamaisentenduparler de cette solution auparavant.Clever, I have never heard about this solution before.
- 0
- 2013-08-08
- Wordpressor
Celui-ciest assezbizarre.
Ce code:
Affiche lebon ID à chaquefois,sauf lapage dublog (lapage définie commeblog sur/wp-admin/options-reading.php).
Sur cettepage,$post-> ID renvoie l'ID dupremier article deblogpour unepage donnée.
Maintenant,lapartie laplus délicate,j'aiessayé de supprimertoutes lesboucles detoutesmespages,fichier loop.phptotalementeffacé,désactivétous les widgets qui auraientpu affecter $postet il renvoietoujours lemauvais ID.
/p>
Des conseils?
Monindex.phpest assez standard:
Et le loop.phpest:
Peut-être que leproblèmeest quej'essaie d'obtenir l'ID dans header.php?
Et oui,
wp_reset_postdata()
ne semblepasnonplus aider:/