如果你使用过 WordPress 自定义日志类型(Custom Post Type)的话,一定发现自定义类型日志的的固定链接(Permalink)是不受制于后台 > 设置 > 固定链接中为 Post 置顶的链接格式,强制设置为 /custom_post_type/post_name/
,如果我们要把自定义日志类型的固定链接修改为 /custom_post_type/post_name/
,如何设置呢?
假设你已经创建了一个 book 的自定义日志类型,将其固定链接设置为:/book/post_id/
,在当前主题的 functions.php
文件中添加如下代码:
add_filter('post_type_link', 'wpjam_book_post_type_link', 1, 3);
function wpjam_book_post_type_link( $link, $post = 0 ){
if ( $post->post_type == 'book' ){
return home_url( 'book/' . $post->ID );
} else {
return $link;
}
}
add_action( 'init', 'wpjam_book_rewrites_init' );
function wpjam_book_rewrites_init(){
add_rewrite_rule( 'book/([0-9] )?$', 'index.php?post_type=book&p=$matches[1]', 'top' );
}
添加好之后,这个固定链接是不会立刻生效的,需要到 后台 > 设置 > 固定链接 点击下保存按钮,刷新 WordPress 的 Rewrite 缓存。