我创建此过滤器的目的是为我的网站的AMP版本创建URL:
function r_amp_add_rewrite_rules() {
global $wp_rewrite;
add_rewrite_rule('([^/]+)/amp/?$',
'index.php?amp=1&category_name=$matches[1]',
'top');
add_rewrite_rule('([^/]+)/amp/'.$wp_rewrite->pagination_base.'/?([0-9+])/?$',
'index.php?amp=1&category_name=$matches[1]&paged=$matches[2]',
'top');
add_rewrite_rule('([^/]+)/([^/]+)/amp/?$',
'index.php?amp=1&category_name=$matches[1]/$matches[2]',
'top');
add_rewrite_rule('([^/]+)/([^/]+)/amp/'.$wp_rewrite->pagination_base.'/?([0-9]{1,})/?$',
'index.php?amp=1&category_name=$matches[1]/$matches[2]&paged=$matches[3]',
'top');
add_rewrite_rule('([^/]+)/amp/?$',
'index.php?amp=1&pagename=$matches[1]',
'top');
add_rewrite_rule('amp/?$',
'index.php?amp=1&page_id=7',
'top');
}
add_filter('init', 'r_amp_add_rewrite_rules', 9999);
function r_amp_query_vars( $vars ) {
array_push($vars, 'amp');
return $vars;
}
add_filter( 'query_vars','r_amp_query_vars' );
一切正常,除了一件事...我安装了Yoast SEO,可以选择从类别的条目中删除前缀“ category”,并且我也有具有父类别的类别,即具有此类url的类别:
/ slug-main / name-category-child /
使用yoast seo选项删除/ category / AMP网址会出现错误404。
/ slug-main / name-category-child / amp /
并且停用了该选项,没有任何错误,但是我想删除前缀类别...
/ category / slug-main / name-category-child / amp /
我该怎么办?
我尝试安装此插件:https://wordpress.org/plugins/accelerated-mobile-pages/,并尝试是否发生相同的事情,是的,它也发生了...尽管我想在我的代码中对其进行修复,因为我正在执行AMP没有插件的主题版本...
谢谢。