Are all ID's used unique?

时间:2014-01-18 作者:EGHDK

我正在使用JSON api插件将数据从wordpress拉入我正在制作的应用程序中。我需要一个唯一的标识符,以确保我没有任何重复,同时也使用标识符作为从最新帖子到最旧帖子的排序方式。到目前为止,我很困惑,因为我收集了最近的10篇帖子。然后,我以ID为例,尝试访问示例。com/?id=1774,但我没有得到正确的帖子。我有一个不同的。我开始没有主意了?

2 个回复
SO网友:s_ha_dum

如果你看看description for the different tables used by WordPress, 描述为“auto\\u increment”的列将是唯一的。

我不知道你在做什么。我无法识别您使用的URL结构。也就是说,我认为您需要的语法是:

example.com/?p=1774
而不是这个:

example.com/?id=1774
?p= + 有效的ID应该始终为您提供带有引用ID号的帖子。

SO网友:Magne

是和否。

博客/网站内id\'s是唯一的。除非它们被篡改(通过修改数据库的AUTO_INCREMENT, 或重复使用旧的id\'s、 这将是一个糟糕的举动)。

在Wordpress多站点网络中,id\'s是not 唯一的一个站点上的博客帖子可以与另一个站点上的博客帖子具有相同的id。可能是因为每个站点都有一个单独的数据库/表。(这件事刚刚发生在我身上。)

对于第三方应用程序(如您正在制作的应用程序),您不应该使用id 作为博客文章的全局唯一标识符,因为如果从不同的wordpress站点/博客中提取数据,那么来自两个不同博客的两篇博客文章可能具有相同的id (出于上述第2点所述的相同原因),在您自己的数据库中进行查询时,您可能最终得到错误的日志。

相反:使用$post->guid (guid表示全局唯一标识符,是Wordpress的工具),并且永远不要更改它,即使博客的URL或域名更改(它只是一个标识符,因此不需要始终与URL匹配)NB:guid必须在较低的映射中才能工作

使用guid,您将无法将标识符用作从最新帖子到最旧帖子的排序方式,但您可以通过client_db_published_at 日期并使用它(无论如何,它更可靠、更详细):

// When you already have the $post in question
"blog_post[client_db_published_at]" => = get_the_time(\'c\', $post->ID); // c  = ISO 8601 = 2004-02-12T15:19:21+00:00  . T is just a whitespace separator here. Ref: http://codex.wordpress.org/Formatting_Date_and_Time#Examples

结束

相关推荐

Get author_id in wordpress

我在获取此代码中的author\\u id时遇到问题。不要什么都不显示。有人能帮我吗?<?php global $query_string; query_posts( $query_string . \'&orderby=rand\' ); ?> <?php while(have_posts()): the_post(); $author_id = the_author_meta(\'ID\'); echo \'Autor:\'