首先,我引用@MrWhite\'s 备注:
你不能在.htaccess
- 您希望在哪里获得posts-category
从中分离?
他是对的—你不应该使用.htaccess
.
我们有2000多篇文章和55000个这些文章的反向链接。如果我只是改变永久链接,我将有超过50k的404,这将破坏网站。
您应该只更改永久链接结构,并使用自定义代码将旧URL重定向到新URL。
Step 1: Change the permalink structure.
只需转到永久链接设置页面,在自定义结构框中输入以下内容:
/%category%/%postname%/%post_id%/
Step 2: Add custom PHP/WordPress code to redirect old URLs to new ones.
这是一个使用
parse_request
胡克:(这符合你的主题
functions.php
文件),代码使用以下两个WordPress函数:
get_post_field()
和
wp_redirect()
)
add_action( \'parse_request\', \'maybe_redirect_old_permalinks\' );
function maybe_redirect_old_permalinks( $wp ) {
if ( preg_match( \'#^([^/]+)/(\\d+)$#\', $wp->request, $matches ) ) {
list ( $path, $slug, $id ) = $matches;
// Redirect to the new permalink, if the slug and ID match.
if ( $slug === get_post_field( \'post_name\', $id ) ) {
wp_redirect( get_permalink( $id ), 301 );
exit;
}
}
}
这种方法还意味着
example.com/<post slug>/<post ID>
和
example.com/<post category>/<post slug>/<post ID>
会有用的。但在页面(发布内容、小部件等)上,post permalinks只能采用更高的格式。