以这样的方式列出帖子:“domain.com/soronomy/ategory

时间:2012-09-10 作者:dlopezgonzalez

我正在修改wordpress(3.3版),以便该列表能够显示来自一个分类和一个类别的帖子。

我安装了两个插件:

WP无类别库WP无分类库

这些允许我用这种url显示帖子:域[.]com/taxonomy-1和域[.]com/类别1

在这一点上,我正在使用域[.]进行三次尝试以获得结果com/taxonomy-1/category-1

?这有什么作用?

3 个回复
SO网友:helgatheviking

你将不得不重新编写URL,这是出了名的相当复杂。然而,在这个网站上有几个很好的答案来解释如何做类似的事情。尤其是这个

Many to Many Taxonomies or rewrite rules?

我还学习了教程Advanced Taxonomy Queries with Pretty Urls... 这在范围上非常相似。

SO网友:dlopezgonzalez
function eg_add_rewrite_rules() {
    global $wp_rewrite;

    $new_rules = array(
        \'location/(.+)/category/(.+)/?$\' => \'index.php?location=\' . $wp_rewrite->preg_index(1) . \'&category_name=\' . $wp_rewrite->preg_index(2)
    );
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( \'generate_rewrite_rules\', \'eg_add_rewrite_rules\' );

Does not work :(

SO网友:dlopezgonzalez

更改类别和分类的基名称(不删除)时解决的问题

在函数中。php(如果需要,也可以在插件中)。

您必须输入此代码才能重写此url www.example。组织/英文/[我的位置]/de/[我的类别]

  add_action(\'init\', \'flush_rewrite_rules\'); 
  add_filter(\'category_rewrite_rules\' , \'add_rules\' ) ;  

  function flush_rules() {

    global $wp_rewrite;
    $wp_rewrite->flush_rules();

  }

  function add_rules($rules) 
  {
    /**
     * Loop em.
     * -------------------------------------------- */    

    $feed_rule  = \'index.php?location=$matches[1]&category_name=$matches[2]&feed=$matches[3]\';
    $paged_rule = \'index.php?location=$matches[1]&category_name=$matches[2]&paged=$matches[3]\';
    $base_rule  = \'index.php?location=$matches[1]&category_name=$matches[2]\';

    $rules[\'en/([^/]+)/de/([^/]+)/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$\'] = $feed_rule;
    $rules[\'en/([^/]+)/de/([^/]+)/page/?([0-9]{1,})/?$\']                  = $paged_rule;
    $rules[\'en/([^/]+)/de/([^/]+)/?$\']                                    = $base_rule;

    $feed_rule2  = \'index.php?location=$matches[1]&feed=$matches[2]\';
    $paged_rule2 = \'index.php?location=$matches[1]&paged=$matches[2]\';
    $base_rule2  = \'index.php?location=$matches[1]\';

    $rules[\'en/([^/]+)/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$\'] = $feed_rule2;
    $rules[\'en/([^/]+)/page/?([0-9]{1,})/?$\']                  = $paged_rule2;
    $rules[\'en/([^/]+)/?$\']                                  = $base_rule2;


    return $rules;

  }

结束

相关推荐