GET_POST()函数返回POST,即使它被丢弃

时间:2018-02-27 作者:Nilesh G

我正在开发WordPress主题。我正在从自定义设置中选择一篇文章作为“特色文章”。我想在主页上以不同的方式显示这篇文章。我正在使用以下代码来获取主页上的帖子。php:

$featured_post = get_post( get_theme_mod( \'featured_post_id\' ) );
此代码可以完美地获得帖子。但是,在选择此帖子作为特色帖子后,如果我将其丢弃,它仍然会在主页上显示为特色帖子。如果我“永久删除”,它不会显示。

如何使用get_post() 为了得到一个没有被破坏的帖子?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

不是这样的get_post() 作品垃圾帖子不会改变主题mod的值,主题mod仍然会指向数据库中的帖子,所以get_post() 只要它还在,就会尽职尽责地取回它。

在显示之前,由您确定其状态是否符合您的要求:

$featured_post = get_post( get_theme_mod( \'featured_post_id\' ) );

if ( $featured_post && $featured_post->post_status === \'publish\' ) {
    // Display post
}
你也可以WP_Queryget_posts() (复数)查询状态为publish 您拥有的ID,但最终可能会产生更多的代码行,并且比只检查状态稍微慢一些。

结束

相关推荐

Wp.getPosts,状态=‘trash’,使用node.js

我想知道如何设置wp的过滤器选项。获取帖子。我想获得状态为“垃圾”的帖子。筛选器当前为空,并返回除垃圾以外的所有帖子。我正在使用xmlrpc wordpress api和节点wordpress插件。https://github.com/scottgonzalez/node-wordpress这是我当前的代码:wp.getPosts(\'<filter>\', [\'title\',\'status\'], function(err, data){ }); 我不确定过