如何获取自定义类型和术语的同源存档URL?

时间:2015-12-18 作者:Luca Reghellin

这可能是一个奇怪的问题,也可能没有答案,但我会试试看。

自定义帖子类型:产品自定义分类法1:产品\\u类别自定义术语:类型1自定义分类法2:产品\\u功能自定义术语:功能1

www.mydomain。com/products>products archive页面www.mydomain。com/products/type1>术语存档页www.mydomain。com/products/feature1>术语存档页www.mydomain。com/products/type1/feature1>术语归档页我想这里的主要问题有2个:

我正在绕过分类路径部分(“添加重写规则”)

  • 产品存档和术语存档共享相同的基数(“产品”)
    1. 是否可能?我在考虑一些事情(RESTAPI、add\\u rewrite\\u rule/tag等),但不确定它们是否是好的/可行的方法。。

    1 个回复
    最合适的回答,由SO网友:Luca Reghellin 整理而成

    因此,第一个解决方案可以使用add_rewrite_rules(). 第一个原始逻辑应该类似于:

    1-获取所需的术语段塞,保存在var中,例如$terms_string; $terms\\u string应该是管道分离段塞的列表,适用于regexp,如“type1 | type2”等。。仅包含有效(允许)值。假设使用get\\u terms()获取所有slug。。

    2-添加如下自定义重写规则:

    function add_rewrite_rules() {
      add_rewrite_rule(
        \'^products/(\' . $terms_string . \')/?$\', //matches things like /products/type1
        \'index.php?product_category=$matches[1]\', //the real query that will be executed upon matching requests
        \'top\'
      );
    }
    
    add_action( \'init\', \'add_rewrite_rules\');
    
    它起作用了。它将正确显示分类法存档。在现实世界中,构建一个一致的规则集实际上要复杂得多,但这就是方法。这里要粘贴的代码太多了,但我刚刚创建了一组类似api的复杂规则,还包括使用polylang进行语言管理。因此,如果有人有同样的任务,就去改写规则。

    相关推荐