我正在开发WordPress主题。我正在从自定义设置中选择一篇文章作为“特色文章”。我想在主页上以不同的方式显示这篇文章。我正在使用以下代码来获取主页上的帖子。php:
$featured_post = get_post( get_theme_mod( \'featured_post_id\' ) );
此代码可以完美地获得帖子。但是,在选择此帖子作为特色帖子后,如果我将其丢弃,它仍然会在主页上显示为特色帖子。如果我“永久删除”,它不会显示。
如何使用get_post()
为了得到一个没有被破坏的帖子?
最合适的回答,由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_Query
或
get_posts()
(复数)查询状态为
publish
和您拥有的ID,但最终可能会产生更多的代码行,并且比只检查状态稍微慢一些。