他们都没有。
A、 C和D都表示您在一个循环中,并且需要当前帖子的状态。但如果是这样的话,那么它们的第一行都是多余的。如果你想知道“当前帖子”的状态,这就是你所需要的:
$current_post_status = get_post_status();
get_post_status()
呼叫
get_post()
在内部,它为您获取当前帖子。因此,没有必要向其提供当前帖子的ID或当前帖子的对象。
如果要获取不是当前帖子的帖子状态,请使用get_post_status()
函数并传递完整的post对象(如果有):
$current_post_status = get_post_status( $post );
否则,请使用函数并传递ID:
$current_post_status = get_post_status( 12 );
您应该更喜欢传递整个post对象,而不仅仅是post ID
get_post_status()
函数需要在内部完成将ID转换为post对象本身的工作,如果您已经获得了完整的对象,那么这是浪费时间。
的优点get_post_status()
结束$post->post_status
函数有额外的逻辑来处理附件的状态,这可能是相关的,并且它还通过get_post_status
过滤器,如果您使用的插件以某种方式与帖子状态交互,这可能很重要。
如果一个函数可用于获取帖子的属性,那么这通常比直接访问该属性更好,因为它将对结果应用正确的过滤器。