如何在循环外获取当前页面ID?

评论

奇怪,您如何使用代码,尝试了什么。您遇到什么错误。就目前情况而言,很难为您提供帮助,所有答案都是黑暗中的一击。请进行编辑

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

请使用所有其他代码/信息进行编辑。不要在问题中使用评论部分:-)

您的帖子已被自动标记为低质量,请遵守我的上述要求:-)

正如我所说,所有这些信息都应放在您的问题中,而不是在评论部分中。请编辑您的问题

#1 楼

尝试

global $post;
echo $post->ID;


或(我不知道区别)

global $wp_query;
echo $wp_query->post->ID;


评论


我已经尝试了所有在Google上找到的东西,但没有任何反应

–穆罕默德·肖阿布·穆尔塔扎(Muhammad Shoaib Murtaza)
2014年9月17日14:01

很难知道什么是“找到的所有东西” :)确保代码在函数中,您可以调用该函数并通过回显之前必须可见的其他内容开始调试...

– caramba
2014-09-17 14:04

我没有使用函数获取ID,“东西”是全局$ wp_query; $ thePostID = $ wp_query-> post-> ID;全球$ post; $ thePostID = $ post-> ID;全局$ wp_query; $ page = $ wp_query-> get_queried_object(); $ page_id = $ page-> ID; $ page_id = get_queried_object_id();

–穆罕默德·肖阿布·穆尔塔扎(Muhammad Shoaib Murtaza)
2014-09-17 14:09



第一个是正确的...

–穆罕默德·肖阿布·穆尔塔扎(Muhammad Shoaib Murtaza)
2014年9月17日14:39

只有在循环开始之前使用这些解决方案,它们才会为您提供页面ID。循环开始后,$ post将依次设置到循环中的每个帖子。

– s_ha_dum
15年8月19日在13:59

#2 楼

您可以轻松做到,

$page_id = get_queried_object_id();


评论


这应该被标记为答案...

– Lezz
20年1月28日在9:59

同意这应该是答案。

– CJWEB
20 Mar 8 '20 at 4:44

绝对应该是正确的答案。我正在尝试获取帖子或页面的当前ID,这是它为我提供正确ID而不用硬编码条件的唯一方法。

–Felipe Rugai
20-05-22在15:38

辉煌,对我来说正确的答案

–努诺·萨门托(Nuno Sarmento)
20-11-19在22:41

#3 楼

您可以通过添加以下代码来做到这一点。它将为您提供当前页面ID。

 $postid = get_the_ID();
 echo $postid;


评论


get_the_ID()是一个循环函数-又名,它打算在循环内部使用。因此,它并没有真正解决“如何在循环之外获取当前页面ID?”的问题。

– s_ha_dum
15年8月19日在13:56