纯代码实现WooCommerce商品(产品)页固定链接html后缀

若你使用过WooCommerce插件,那么你会发现WooCommerce的默认固定链接是由 /product/商品名称 构成的。这种默认的结构对于seo来说不是很友好,具体原因如下:

  1. 显示中文,或者标题过长导致url过长

显示中文的url对于seo非常不好的,如果使用了 Pinyin Slugs 插件,那么链接最后显示的是中文名转译的拼音,很容易就导致url过长,大家一般认为搜索引擎更喜欢简短的url。

  1. 伪静态结构

若你的网站是伪静态结构,如我们所推荐的 /%post_id%.html 结构,那么商品的结构就和wordpress文章的伪静态结构不一样了,我们建议保持统一的静态结构将对SEO优化有利。

实现方法

一、将下方的代码粘帖在主题的 functions.php 文件中:

ID固定形式

$posttypes = array(
'product' => 'product',//Woocommerce产品自定义文章类型
'portfolio' => 'portfolio'//作品集自定义文章类型
);
add_filter('post_type_link', 'custom_book_link', 1, 3);
function custom_book_link( $link, $post = 0 ){
global $posttypes;
if ( in_array( $post->post_type,array_keys($posttypes) ) ){
return home_url( $posttypes[$post->post_type].'/' . $post->ID .'.html' );
} else {
return $link;
}
}
add_action( 'init', 'custom_book_rewrites_init' );
function custom_book_rewrites_init(){
global $posttypes;
foreach( $posttypes as $k => $v ) {
add_rewrite_rule(
$v.'/([0-9]+)?.html$',
'index.php?post_type='.$k.'&p=$matches[1]',
'top' );
}
}

别名固定方式

$posttypes = array(
'product' => 'product',//Woocommerce产品自定义文章类型
'portfolio' => 'portfolio'//作品集自定义文章类型
);
add_filter('post_type_link', 'custom_book_link', 1, 3);
function custom_book_link( $link, $post = 0 ){
global $posttypes;
if ( in_array( $post->post_type,array_keys($posttypes) ) ){
return home_url( $posttypes[$post->post_type].'/' . $post->post_name .'.html' );
} else {
return $link;
}
}
add_action( 'init', 'custom_book_rewrites_init' );
function custom_book_rewrites_init(){
global $posttypes;
foreach( $posttypes as $k => $v ) {
add_rewrite_rule(
$v.'/([一-龥a-zA-Z0-9_-]+)?.html([sS]*)?$',
'index.php?post_type='.$k.'&name=$matches[1]',
'top' );
}
}

二、WordPress后台->设置->固定连接->商品(产品)固定连接->自定义基础连接中输入 /%postname%.html/ 即可商品(产品)页固定链接html后缀。

纯代码实现WooCommerce商品(产品)页固定链接html后缀插图1

本文来自【年年有鱼黄金会员】的投稿,部分内容可能来源于互联网,不代表【最省事】的观点和立场。侵权投诉>>

本文著作权归博主所有,并授权【最省事】独家使用,未经博主授权,请勿转载。授权申请>>

(3)
上一篇 2021年12月29日 21:24
下一篇 2022年1月11日 18:17

相关推荐

发表回复

登录后才能评论