POST_ID会改变吗?我可以安全地使用post_id进行自定义查询吗?

时间:2011-06-30 作者:timshutes

使用post\\u id的最佳实践是什么?我可以在模板中安全地使用它来调用特定帖子吗,或者这些post\\u id是否会改变?

我问这个问题的原因是,今天我的站点上的post\\u id发生了随机变化,我想知道是什么导致了它。谢天谢地,这并没有把任何permalinks搞砸但我必须切换一些自定义查询,这些查询专门通过post\\u id调用内容(特别是在我创建的一些自定义post\\u类型中)

所以我应该使用不同的查询来获取特定的帖子吗?我使用的查询如下所示。

<?php query_posts(\'post_type=home_feature&p=36\')?>
就在今天早些时候,这篇文章的post\\u id是139,我的查询是:

<?php query_posts(\'post_type=home_feature&p=139\')?>
显然,当post\\u id更改时,我的查询(以及随后的自定义主页功能)中断了。我只是不确定是什么导致了这种变化。。如果这意味着我不应该在自定义查询中使用post\\u id。。有什么想法?

3 个回复
最合适的回答,由SO网友:Brian Fegter 整理而成

帖子ID不变。这背后的原因是MYSQL中的ID列是表的主键。当添加新行时,它会自动递增。除非有人在数据库中做了一些流氓的事情,否则帖子ID不可能以编程方式更改。

SO网友:Paul

为什么不直接做<?php query_posts( \'p=36\' )?>不需要指定帖子类型,因为帖子ID应该是唯一的。

或者,您可以按标题定位帖子,并从中获取ID:

$page = get_page_by_title(\'Title of Post\',\'post\');
query_posts( \'p=\' . $page->ID );

SO网友:andresmijares

我建议您使用另一种方式,对于示例,只需使用页面名称,而不是id,或者创建一个带有复选标记的元数据(自定义字段)并调用它。

可以肯定的是,它将来会断裂,你会很安全的!

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register