欢迎光临
我们一直在努力

wordpress:tag标签变成了/id+.html/的解决办法

今天无意中发现蜘蛛爬行日志中,tag相关内容的返回代码变成了301。复制连接打开后,神奇发现

原来 https://www.yunzhanyou.com/tag/2239.html 

而现在变成了https://www.yunzhanyou.com/tag/2239.html/

程序自动把tag内容页 定向成了 /.html/变成了不标准的目录形式。思来想去最近也没动过什么。

仔细研究了半天原来是两段代码冲突。

/* 标签以html方式展示*/
 
add_action('generate_rewrite_rules','tag_rewrite_rules');
 
add_filter('term_link','tag_term_link',10,3);
 
add_action('query_vars', 'tag_query_vars');
 
function tag_rewrite_rules($wp_rewrite){
 
    $new_rules = array(
 
        'tag/(\d+)/feed/(feed|rdf|rss|rss2|atom).html' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
 
        'tag/(\d+)/(feed|rdf|rss|rss2|atom).html' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
 
        'tag/(\d+)/embed.html' => 'index.php?tag_id=$matches[1]&embed=true',
 
        'tag/(\d+)/page/(\d+).html' => 'index.php?tag_id=$matches[1]&paged=$matches[2]',
 
        'tag/(\d+).html' => 'index.php?tag_id=$matches[1]',
 
    );
 
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
 
}
 
function tag_term_link($link,$term,$taxonomy){
 
    if($taxonomy=='post_tag'){
 
        return home_url('/tag/'.$term->term_id.'.html');
 
    }
 
    return $link;
 
}
 
function tag_query_vars($public_query_vars){
 
    $public_query_vars[] = 'tag_id';
 
    return $public_query_vars;
 
}
/* 栏目添加"/"目录形式展现开始*/
function nice_trailingslashit($string, $type_of_url) {
if ( $type_of_url != 'single' )
$string = trailingslashit($string);
return $string;
}
add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);
/* 栏目添加"/"目录形式展现结束*/

这两代码不能同时使用,否则就会出现tag标签301的状态。目前云站友只保留了tag以id.html方式展现,至于栏目添加/变成目录,看来我只能考虑借用于插件来解决了!

未经允许不得转载:云站友 » wordpress:tag标签变成了/id+.html/的解决办法

评论 抢沙发

评论前必须登录!

立即登录   注册