由于我使用的是JSON API,永久链接没有意义。我的站点URL与永久链接生成的URL完全不同,因此这可能会让客户端感到困惑。
是否有任何方法可以在页面和默认帖子类型上禁用永久链接?我可以通过指定\'public\' => false
但我如何在整个网站上进行此更改?甚至媒体页面也有永久链接。
由于我使用的是JSON API,永久链接没有意义。我的站点URL与永久链接生成的URL完全不同,因此这可能会让客户端感到困惑。
是否有任何方法可以在页面和默认帖子类型上禁用永久链接?我可以通过指定\'public\' => false
但我如何在整个网站上进行此更改?甚至媒体页面也有永久链接。
自WP 4.4以来,有一个钩子可用于编辑已注册帖子类型的默认参数:
register_post_type_args
(view in context on trac)
如果您想从编辑帖子/页面屏幕中删除永久链接/slug,但不想从管理菜单本身中删除帖子,请设置public => false
和show_ui => true
应该这样做。
function remove_from_public( $args, $post_type ) {
$args[\'public\'] = false;
$args[\'show_ui\'] = true;
// some other common uses:
//$args[\'show_in_rest\'] = false;
//$args[\'rewrite\'] = false;
//$args[\'rest_base\'] = false;
return $args;
}
add_filter( \'register_post_type_args\', \'remove_from_public\', PHP_INT_MAX, 2 );
我使用PHP_INT_MAX
只是把它踢到钩子的底部,覆盖可能在那里被调用的任何内容。我有自定义帖子,我创建了一个显示所有自定义帖子的页面。示例:www.example.com/archive-page我想知道是否可以更改与此自定义帖子相关的类别和标签的永久链接。现在我有:www.example.com/my-custom-post-type-cats/my-category-1www.example.com/my-custom-post-type-tags/my-tag-1</我想要这样的东西:www.example.com/archive-page?category=1www.e