很可能是因为您的自定义分类法没有分配给端点掩码,所以您得到的是404(EP_PAGES
) 与端点一起使用。
因为add_rewrite_endpoint()
可用于自定义帖子类型和分类,但you need to assign the endpoint mask to the post type or taxonomy 注册期间,通过ep_mask
输入rewrite
的参数register_taxonomy()
以及register_post_type()
, 像这样:
// Add the "infopage" endpoint with the endpoint mask EP_PAGES.
add_rewrite_endpoint( \'infopage\', EP_PAGES );
// Register a "foo" post type.
register_post_type( \'foo\', array(
\'public\' => true,
\'label\' => \'Foos\',
\'rewrite\' => array(
\'ep_mask\' => EP_PAGES, // assign EP_PAGES to the CPT
\'slug\' => \'foos\',
),
) );
// Register a hierarchical taxonomy for the "foo" CPT above.
register_taxonomy( \'foo_cpt\', \'foo\', array(
\'public\' => true,
\'label\' => \'Foo Categories\',
\'hierarchical\' => true,
\'rewrite\' => array(
\'ep_mask\' => EP_PAGES, // assign EP_PAGES to the taxonomy
\'hierarchical\' => true, // this one is entirely up to you
),
) );
因此,分配端点掩码,然后刷新重写规则(只需访问Permalink设置管理页面),看看您是否仍然获得404。
此外,如果您无法更改register_taxonomy()
或register_post_type()
代码(例如,因为帖子类型或分类是使用第三方插件注册的),那么您可以使用register_taxonomy_args
或register_post_type_args
钩子以修改分类法或post类型参数。
至于;推荐的备选方案;,那么它将使用add_rewrite_rule()
手动为端点添加重写规则,例如。add_rewrite_rule( \'foo_cpt/(.+?)/infopage(/(.*))?/?$\', \'index.php?foo_cpt=$1&infopage=$3\', \'top\' )
对于foo_cpt
上述分类法:)