WordPress 技巧:如何修改自定义日志类型的固定链接

如果你使用过 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 缓存。