publicly_queryable => false 是WordPress文章类型注册时的一个重要参数,它有以下作用:
- 
主要功能: 
 – 禁止通过前台URL直接访问单个文章页面
 – 禁止这些文章出现在搜索结果中
 – 禁止这些文章出现在主查询中(main query)
- 
实际效果: 
register_post_type('changelog', array(
    'public' => true,
    'publicly_queryable' => false,
    // ...
));
- 管理员仍可在后台管理文章
- 前台无法通过 /changelog/post-slug这样的URL访问单篇文章
- 这些文章不会出现在站内搜索结果中
- 
常见使用场景: 
 – 只需要在特定模板中显示内容,不希望有单独的文章页面
 – 纯后台功能的文章类型,如设置页面
 – 需要将多篇文章内容组合显示在一个页面上
- 
与 public参数的区别:
// 场景1: 完全公开
'public' => true,
'publicly_queryable' => true
// 场景2: 只在后台可见和管理
'public' => false,
'publicly_queryable' => false
// 场景3: 可在后台管理且可通过API访问,但无单独页面
'public' => true,
'publicly_queryable' => false
如果你的changelog需要:
– 只在特定页面以列表形式显示
– 不需要单独的文章详情页
– 不希望出现在搜索结果中
那么设置 publicly_queryable => false 是合适的选择。
如果你需要:
– 有独立的文章详情页
– 允许搜索
– 可以通过URL直接访问
那么应该设置 publicly_queryable => true。
Last Updated: 
			