在没有前缀/ category /

时间:2019-02-27 22:49:02

标签: php wordpress permalinks

我创建此过滤器的目的是为我的网站的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没有插件的主题版本...

谢谢。

0 个答案:

没有答案