首先,让我们深入了解5
真正地这是帖子的ID。但ID又是什么呢?它是MySQL表行中标识特定post记录的值。
使用IDs的问题,因此首先它存在一些概念上的问题。这不是内容。它不是用户创建、操纵或(大多数时候)意识到的东西。WP(按设计)在向用户公开ID方面相当狡猾,而且几乎从来没有这样做过,为此产生了很多插件。
作为一种产品,它不是内容(或价值对人类来说没有意义),它不是自我记录。根本无法推断是什么帖子5
可能来自您的代码片段。
最后,虽然ID在特定的数据库中唯一地标识post,但一旦内容开始在数据库和/或甚至不同的系统之间移动,就很难确定这样做。
那么,有什么更好的选择呢
我观察到检索和使用独立帖子的两个典型原因。
使用站点中的特定内容时,持久内容通常是非常静态的,在大多数情况下可以通过标题来识别。例如,在代码段中,低ID为5
通常指“关于”页面之类的内容。
用于检索此类内容get_page_by_title()
是合适的。不管它接受什么名字$post_type
作为第三个参数,它不仅适用于页面。
因此,使用更好的标识(并在使用时生成自文档代码),您的代码片段将变成:
$about_page = get_page_by_title( \'About\' );
另一种情况是,帖子被用作站点中的位置,而不是特定内容。例如,我们希望检索站点的常见问题,但不确定(或不关心)它的确切名称和其他内容详细信息。
但如果我们知道它在站点结构中的位置,我们可以使用get_page_by_path()
功能,非常类似于前面的:
$faq_page = get_page_by_path( \'about/faq\' );
其他情况下,在更复杂的情况下,并不总是存在拟合良好的函数。有时归结起来就是使用
get_posts()
其丰富的查询选项,即使只针对单个帖子。