按ID嵌入的页面不尊重私有和草稿状态

时间:2017-11-06 作者:EkDor

有一个问题,我使用下面的代码将一系列页面加载到网站索引中:

<?php $id = 1767; $p = get_page($id); echo apply_filters(\'the_content\', $p->post_content); ?>
但这些页面中的信息并不尊重隐私和草案状态。通常这对我来说很好。但其中有两个对我来说都是预定的更新。但无论页面状态如何,在我尝试过的所有浏览器中,页面的未链接阅读器都可以看到它。

我读了一些关于page_status 代码,但我太外行了,不知道如何让它工作。

欢迎提供帮助和建议。谢谢

好的,谢谢Piyush Rawat。我实现了以下内容。就我所知,它工作正常。

<?php $id = 2841; $p = get_page($id);  if ( get_post_status ( $id ) == \'publish\' ) { echo apply_filters(\'the_content\', $p->post_content); } ?>

2 个回复
最合适的回答,由SO网友:Piyush Rawat 整理而成

您可以使用get\\u page()获取当前状态,并根据其输出执行操作。

 $id = YOUR_ID; 
 $p = get_page($id);
 $status = $p->post_status;

 if($status == \'publish\'){
      //Do something
 } 

SO网友:B. Schuiling

将页面ID硬编码到网站中是一个坏主意,这会在以后咬到你。

您可以使用get_pages 函数检索页面。默认情况下,它将自动只查询发布状态“publish”。如果真的需要,您可以使用include参数给出一组页面ID。

结束