$POST->ID和_id()总是返回错误的值

时间:2012-01-20 作者:Jason Swett

我有一个网站,我在每个页面上显示相同的页脚。不过,有一个例外。在某一页上,我需要更改页脚的一小部分。

我想最简单的方法是在页脚内检查我是否在该页上。更改该页的整个页脚是没有意义的,因为我只更改页脚的一小部分,在页脚的深处。

问题是每当我打电话$post->IDthe_id() 在页脚内,它给了我一个明显与我所在帖子不匹配的ID。它总是给我89, 无论我在网站的哪个页面上。

我想我一定做错了什么。谁能告诉我是什么吗?

5 个回复
最合适的回答,由SO网友:helenhousandi 整理而成

听起来你正在改变全球$post 某处的数据(通常是另一个循环)。一定要打电话wp_reset_postdata() 完成在备用循环中设置post数据的操作后。

SO网友:Sufiyan Ghori

\\u ID只是回显帖子,它不返回ID,如果需要特定帖子的ID,

使用<?php get_the_ID(); ?>

SO网友:Annika Backstrom

测试$the_wp_query, 这是活动页面的主要查询。的价值$post 只是上一个循环结束时的结果,因此您可能有影响值的插件。

SO网友:Raphael

法典说(强调我的):

显示当前帖子的数字ID。This tag must be within The Loop.

您尝试在页脚中使用它,因此失败是有很好的记录的。

我建议这样做:编写一个带有自己帖子ID数组的小插件(类成员或唯一命名的全局;应该是一个数组,以便处理包含多篇帖子的页面)。

创建一个快捷码,将当前帖子的ID添加到此数组中。在页脚中,您可以从中读取所需的所有ID,并且可以确保没有人对它们进行了修改。

SO网友:Ben

我的问题是我给$post分配了其他值。我将$post重命名为其他名称,它可以正常工作。

结束

相关推荐

AJAX search posts and pages

我正在尝试制作一个插件,在这里我需要创建一个AJAX搜索。Im使用中描述的方法http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/ 执行ajax调用。到目前为止一切都很好。问题是不确定如何在我的ajax函数中检索搜索结果。第一次尝试使用WP\\U查询,如下所示:$query= new WP_Query( array( \'post_type\'=> \'any\',\'post_status\' => \'publ