我的自定义帖子类型在“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查询参数保留默认URL
publicly_queryable 属性必须为true。为了不向其他人显示,我必须使用条件来检查是否向当前用户显示页面。
最合适的回答,由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的单一版本,或者我从来没有打算同时发布我的所有帖子。这也很好,因为它们不会被谷歌或其他索引机检索到。