有没有更好、更有效的方法在循环之外获取帖子ID?

时间:2013-09-17 作者:Gixty

现在我正在使用:

$wp_query->post->ID;
我想知道是否有更好的方法来获取消耗更少资源的帖子id?

2 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

另一种方法是访问$post 全球:

global $post
echo $post->ID;
但是

不管怎样,这都不会有明显的区别。如果你想提高效率,你应该去别处看看EDIT, 关于注释:

那么...怎么样get_the_ID();?

-->需要在循环内部运行。

我尝试了两个选项(获取\\u ID和访问$post global)都给了我一个错误的ID。

如果是后者,那么您或您正在使用的某个插件reset postdata.

你说去别处看看。。。我应该去哪里?

我不知道你在写什么。但是,如果遇到资源瓶颈或效率低下,那么检索当前帖子ID可能不是原因。

SO网友:Dan Ștefancu

您还可以使用get_queried_object_id() 结合is_main_query() 环路外

if ( is_main_query() )
    $mypostid = get_queried_object_id();
请注意,此函数将在存档页上返回作者id,在类别存档上返回类别id,等等。

结束