之前小编写过一篇Wordpress代码创建自定义分类与自定义文章类型的文章,在那篇文章中小编还提出了一个疑问。
自定义分类法链接结构
即:自定义文章类型的链接 /shop 和 自定义分类法的链接 /shops 是不一致的,这个问题小编经过详细了解了wordpress的参数后终于解决了。
问题解决的方法仅仅只需要一个参数而已,如下
'rewrite' => array( 'slug' => 'shop', 'with_front' => false ),
只需要在上次小编写的自定义分类法和自定义文章类型的代码中加上这串参数即可,参数意思就是重写自定义文章类型的链接。
好了,上次的问题完美解决,下面要改的是自定义文章类型的固定链接结构。
自定义文章类型的固定链接结构
在创建了自定义文章类型后,大家会发现发布的产品链接会是 以 别名形式 展示的,如:/shop/苏打粉。
是的,如果不手动修改这个链接,在后台显示是中文,但在浏览器显示那就是一串乱码了。毫无疑问这非常不美观且不利于搜索引擎收录。所以需要将其修改为文章一样的以 ID形式 的链接,即 /shop/123.html。
话不多说,直接上代码,其中 shop 这个是文章类型,需要修改为自己创建的名称。
/*
* 设置自定义文章类型的固定链接 已ID形式显示
* https://www.mfisp.com/2346.html
*/
add_filter('post_type_link','custom_shop_link',1,3);
function custom_shop_link($link, $post=0){
if ($post->post_type == 'shop') {
return home_url('shop/'.$post->ID.'.html' );
}else{
return $link;
}
}
add_action('init','custom_shop_rewrites_init');
function custom_shop_rewrites_init(){
add_rewrite_rule('server/([0-9]+)?.html$', 'index.php?post_type=shop&p=$matches[1]','top');
add_rewrite_rule('server/([0-9]+)?.html/comment-page-([0-9]{1,})$', 'index.php?post_type=shop&p=$matches[1]&cpage=$matches[2]','top');
}
建议更新了以上代码后,重新保存一下固定链接,防止404,位置在wordpress后台设置 - 固定链接。