当我这样做时,我从这个页面获得了所需的结果,但我的所有其他页面链接都断开了(使用永久链接)
因为,很简单,WordPress对你要的页面没有任何线索。它在做你让它做的事;
对于所有看起来像http://example.com/X
, 查找消息类型为的帖子X
.
这就是为什么你需要“标识符”在那里;这样就可以区分对页面、档案、类别。。。
如果您真的想要这个功能,那么在重写映射的顶部添加详细的重写规则将是一个不错的选择;
add_rewrite_rule( \'media/?$\', \'index.php?messagetypes=media\', \'top\' );
如果您有很多消息类型,那么您可能希望连接到术语的创建和删除中,并动态更新&;刷新重写规则。
否则,请在functions.php
, 然后刷新永久链接(只需访问管理中的永久链接选项页面)。
最后一件事,恢复register_taxonomy
调用“恢复正常”,即省略rewrite
参数,并使用term_link
在自定义permalink中交换过滤器;
function __custom_messagetypes_link( $link, $term, $taxonomy )
{
if ( $taxonomy !== \'messagetypes\' )
return $link;
return str_replace( \'messagetypes/\', \'\', $link );
}
add_filter( \'term_link\', \'__custom_messagetypes_link\', 10, 3 );