WordPress 固定链接 自定义结构以.html结尾时,分类和标签页的链接尾部将不会以/结尾,这样的链接一般是无法被缓存的。
三种纯代码添加斜杠的方法
任选一种代码,复制到所用主题 functions.php 底部保存生效
// 方法一:为分类法和标签法的 URL 后缀添加斜杠 function add_trailing_slash_to_term_links( $termlink, $term, $taxonomy ) { // 判断当前分类法是否为标签法或者分类法 if ( 'post_tag' == $taxonomy || 'category' == $taxonomy ) { // 为 URL 后缀添加斜杠 $termlink = trailingslashit( $termlink ); } // 返回处理后的 URL return $termlink; } // 添加钩子:当生成分类法或标签法链接时,将调用该函数进行处理 add_filter( 'term_link', 'add_trailing_slash_to_term_links', 10, 3 );
// 方法二:为 URL 添加斜杠 function nice_trailingslashit($string, $type_of_url) { // 判断 URL 是否为单篇文章页面、页面、单篇文章分页 if ( $type_of_url != 'single' && $type_of_url != 'page' && $type_of_url != 'single_paged' ) { // 如果 URL 不是以上三种类型,则为其添加斜杠 $string = trailingslashit($string); } // 返回处理后的 URL return $string; } // 添加钩子:当生成 URL 时,将调用该函数进行处理,由于这种处理不针对特定的分类法或标签,所以使用的是 user_trailingslashit 钩子 add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);
// 方法三:为分类法 URL 后缀添加斜杠 add_action( 'init', 'add_taxonomies_slash' ); function add_taxonomies_slash() { // 为标签添加斜杠,URL 结构为 /tag/%tag%/ register_taxonomy( 'post_tag', array( 'post' ), array( 'rewrite' => array( 'slug' => 'tag/', 'with_front' => false ), // 其他参数 ) ); // 为分类法添加斜杠,URL 结构为 /category/%category%/ register_taxonomy( 'category', array( 'post' ), array( 'rewrite' => array( 'slug' => 'category/', 'with_front' => false ), // 其他参数 ) ); }
三种方法的优缺点
第一段代码使用的是 term_link 过滤器,只针对分类法和标签法的 URL 后缀进行处理,其优点是简单易用,如果只需要处理这两种 URL 后缀,可以优先选择这种方法。
第二段代码使用的是 user_trailingslashit 过滤器,可以为不同类型的 URL 添加斜杠,其优点是可以针对不同类型的 URL 进行自由设置,但其缺点是需要手动添加代码,相对来说使用略有麻烦。
第三段代码侧重于分类法的设置,可以为不同分类法的 URL 后缀添加斜杠,相对来说更适合为网站进行全面的 URL 后缀设置。在使用该方法时,需要先注册相关分类法,并在注册时指定 URL 结构和其他参数。
需要注意的是,在上述方法中,trailingslashit() 函数用于为 URL 添加结尾的斜杠。它的作用是确保 URL 的规范性和美观性,并且在 SEO 方面也有一定的作用。
原链接需要加301跳转吗
给标签和分类增加上斜杠后,需要对原链接设置 301 重定向到新链接吗?虫子菌实测,不用做额外的操作,WordPress 会自动做 301 跳转。具体你可以实际测试测试。
暂无评论
要发表评论,您必须先 登录