.htaccess 在Wordpress上重写多个项目的url条件

oewdyzsn  于 2022-11-16  发布在  WordPress
关注(0)|答案(1)|浏览(108)

希望添加重写规则以将以下内容:

/compare/?items=test1,test2

到这个

/compare/test1-vs-test2

此外,最多可以有4个项目发送到URL,因此结果将是

/compare/test1-vs-test2-vs-test3-vs-test4

使用https://developer.wordpress.org/reference/functions/add_rewrite_rule/可以实现这一点吗?
或者我应该直接在.htaccess中添加一些条件吗?任何帮助都将不胜感激。谢谢。

wnrlj8wa

wnrlj8wa1#

1.添加items查询变量

function compare_query_vars( $qvars ) {
        $qvars[] = 'items';
        return $qvars;
    }
    add_filter( 'query_vars', 'compare_query_vars' );

1.循环查询看起来如下所示:

$items = get_query_var( 'items');
    $items = explode('-vs-',$items);
    
    $the_query = new WP_Query( [ 'post_name__in' => $items ]  );

结果/?items=test1-vs-test2
注意:* 当您构建初始URL时,请确保您发送得是帖子得内容,而不是ID*

1.最后一个URL重写

add_action( 'init',  function() {
        add_rewrite_rule( '^compare/([a-z0-9-]+)[/]?$', 'index.php?page_id=37&items=$matches[1]', 'top' );
    } );

注意:*page_id应该是您要建立循环之页面的ID *

1.通过进入设置-〉永久链接刷新永久链接,然后保存页面。
1.访问所需的URL /compare/test1-vs-test 2

相关问题