查询私人自定义帖子类型

时间:2017-04-10 作者:TurtleTread

我的自定义帖子类型在“public”中注册为false,我正在使用WP\\u Query()对象进行查询。arg的“post\\u type”也设置为private。url是站点。com/?post\\U type=我的\\U post\\U type

注册时,我尝试将“exclude\\u from\\u search”属性设置为false,但这并没有使我返回帖子。从文档来看,上述url查询似乎会受到影响。我的页面是single-My\\u custom\\u post\\u类型。主题文件夹中的php。

我猜我必须创建一个带有自定义页面模板的页面,以使URL不受前端搜索或公共可查询属性的影响。

问题是,是否仍有保留默认url的方法?post\\u类型=。。。并且仍然能够查询私有帖子类型。谢谢

Answer:以下是我使用的属性:

\'public\'        => false,
\'publicly_queryable\' => true,
\'exclude_from_search\' => true,
由于我想用post\\u type查询参数保留默认URLpublicly_queryable 属性必须为true。为了不向其他人显示,我必须使用条件来检查是否向当前用户显示页面。

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

如果您将CPT设置为private,那就是告诉wordpress不要为该帖子类型创建动态页面。这包括使用单个CPT。php文件。

如果要拥有“”post\\u type=“页面,则需要将cpt设置为public\\u queryable=true或public=true(其中包括public\\u queryable)。

为什么您希望它是私有的(aka public=false)?

如果您只想让后面的帖子这样做:

publicly_queryable=false;  //disables creation of single pages.
has_archive=false;  //disables creation of archive page.
public=true;  //if this is set to false it will hide them in the backed too.
如果您保持这种方式,并且希望在前端显示帖子,那么通过使用wp\\u查询,它们仍然可用。我这样做的时候,我不希望人们看到我的CPT的单一版本,或者我从来没有打算同时发布我的所有帖子。这也很好,因为它们不会被谷歌或其他索引机检索到。

相关推荐

Prevent private post 404

我希望私人帖子(对于那些没有登录的人)使用single.php 模板就像公共帖子一样,在他们被扔到404.php 样板我已经仔细查看了核心文件,但找不到模板更改的位置(注意:这不是重定向)。有人能帮忙吗?Edit为了解释我为什么要这样做,我希望所有访问者都能看到内容的预览,但登录“成员”可以看到整个帖子内容。