Php Wordpress将非类别页面/page/nnn重定向到其规范URL
我似乎有一个奇怪的问题,我发现在几乎所有其他Wordpress网站 假设您已将博客主页设置为静态WP页面Php Wordpress将非类别页面/page/nnn重定向到其规范URL,php,wordpress,.htaccess,canonical-link,Php,Wordpress,.htaccess,Canonical Link,我似乎有一个奇怪的问题,我发现在几乎所有其他Wordpress网站 假设您已将博客主页设置为静态WP页面/myhome。你有一个单独的博客/blog页面 现在,这很好,应该是: /blog /blog/page/2 /blog/page/3 /blog/page/4 但是,对于所有其他页面,例如关于我们的/这些链接也有效: /about-us/page/2 /about-us/page/3 /about-us/page/4 并显示/关于我们页面的内容 我的问题是/about-us/page/
/myhome
。你有一个单独的博客/blog
页面
现在,这很好,应该是:
/blog
/blog/page/2
/blog/page/3
/blog/page/4
但是,对于所有其他页面,例如关于我们的/这些链接也有效:
/about-us/page/2
/about-us/page/3
/about-us/page/4
并显示/关于我们
页面的内容
我的问题是/about-us/page/2
应该理想地重定向到/about-us
(这是规范的URL),因为除了/blog
之外,任何其他页面都没有分页
我错过了什么?这似乎发生在我检查过的几乎所有网站上,从SEO的角度来看,这确实令人沮丧。这不是正常的WorpAddress行为,如果页面未启用分页,则不应接受页面参数。刚刚在Wordpress页面上测试过,/mypage/page/2
给出了404
这可能与你的主题以及如何查询帖子有关。例如在主题文件中查找每页的posts\u
和numberposts
,并找到与页面相关的查询。然后将值更改为-1
,以禁用分页
另一个解决方案是重定向所有分页URL(博客除外)-这在functions.php中有:
这是有意为之。多年来,WordPress重写变得越来越复杂,许多插件使用页面的端点(通常带有模板和自定义查询)-重定向带来了潜在的痛苦
长话短说,反正没关系。WordPress为页面添加了新功能,因此无需担心重复内容
更新:对于希望忽略潜在风险的本地化情况,这将规范化所有页面URL-注意,它不会检查页面是否实际分页(即使用
quicktag),如果使用它,将破坏此功能
function wpse_199180_canonical_pages( $wp ) {
if ( ! is_admin() && is_page() && isset( $wp->query_vars['paged'] ) ) {
wp_redirect( get_permalink( get_queried_object() ), 301 );
exit;
}
}
add_action( 'wp', 'wpse_199180_canonical_pages' );
好吧,为什么要投否决票?我没有提到你也可以选择htaccess重定向。htaccess将是艰难的手动操作,因为我可以有一些页面,如博客
,新闻
,等等。在这些页面中,我希望分页工作,而在所有其他情况下都不工作。然后,每当添加新的此类页面时,我将始终需要为客户提供支持。
function wpse_199180_canonical_pages( $wp ) {
if ( ! is_admin() && is_page() && isset( $wp->query_vars['paged'] ) ) {
wp_redirect( get_permalink( get_queried_object() ), 301 );
exit;
}
}
add_action( 'wp', 'wpse_199180_canonical_pages' );