WordPress首页page/1报错解决方法
今天对 WordPress 的分页 canonical 有了一个新的想法,于是就折腾了起来,由于 WordPress 的首页、列表、标签等默认都是翻页,而由于从网站 SEO 优化的角度来看这些页面就会比较重复,很多时候搜索引擎会收录很多的类似 page/num 的分页页面,也就导致首页、栏目页或者标签的默认页面排名没那么好,但是又不太可能直接禁止分页,所以子凡就想着用 canonical 来稍微的规范一下页面。
而就在完成这个功能的时候,子凡测试到一个新的 WordPress 问题,就是当“WordPress 首页/page/1”的方式访问会报错,错误提示如下:
1 | Warning: Undefined array key "path" in /www/wordpress/wp-includes/canonical.php on line 590 |
经过判断,是由于 WordPress 固定链接使用的类似“/%category%/%postname%”,自定义结构的结束没有使用斜杠,而造成的 WordPress 报错,而使用“/%category%/%postname%/”这样结尾有斜杠的结构则不会报错。
通过 Google 查询才发现有一堆的网站有这样的错误提示,并且也在 WordPress 官方开到有人反馈该错误,结果就是六年了都没有处理这个问题,既然是这样子凡我也不希望通过官方的形式来解决,直接采用一个间接的解决方法,解决方法如下:
1 2 3 4 5 6 7 8 | //跳转控制 add_action( 'template_redirect', 'fanly_basic_redirects' ); function fanly_basic_redirects() { if( is_home() && get_query_var('paged')===1 ) {//避免首页 page/1 报错 wp_redirect( home_url(), 301 ); die; } } |
使用方法就是把这段代码放置到当前所用的 WordPress 主题的 functions.php 文件中即可。解决原理就是跳转,当 WordPress 识别到是通过“WordPress 首页/page/1”访问的时候就直接跳转到首页,完美解决该问题。
更多关于WordPress优化及疑问可以添加留言
w.haolusi.com
本文链接:https://w.haolusi.com/wordpress-page-1-error.html