我已安装WordPress 5.1并启用了永久链接结构。
因此,链接具有以下结构:http://example.com/taxonomy_name/term-slug
但是,我创建了一个自定义分页器,该分页器具有类似http://example.com/taxonomy_name/?order=ASC&orderby=title&taxonomy_2=term-slug
的链接,并且工作正常。因此,当我单击此URL时,它保持不变。
但是如果它具有这样的页面参数:http://example.com/taxonomy_name/?order=ASC&orderby=title&taxonomy_2=term-slug&paged=X
( X 可以是任何数字),那么当我单击此URL时,它将自动将我重定向到:http://example.com/taxonomy_name/page/X/?order=ASC&orderby=title&taxonomy_2=term-slug
如何防止仅这种分页器重定向?
答案 0 :(得分:0)
我已经通过为WP内置的规范重定向规则创建过滤器来解决此问题。
这是过滤器功能:
function disable_paged_canonical_redirect($redirect_url, $requested_url){
// Retrieve paged var from $_GET request
$page_num = (int)filter_input(INPUT_GET, 'paged');
// Check if there is a canonical '/page/X' part in the URL.
$canonical_paged = preg_match('/\/page\/[0-9]+/i', $redirect_url);
// If paged var is in GET vars and WP created canonical redirect for it, then revert this change.
if( $canonical_paged && $page_num ){
// Remove page part from canonical URL
$redirect_url = preg_replace('/\/page\/[0-9]+/i','', $redirect_url);
// Add paged var to URL arguments
$redirect_url .= '&paged='.$page_num;
}
return $redirect_url;
}
add_filter('redirect_canonical','disable_paged_canonical_redirect', 10, 2);