如何向术语添加自定义永久链接?

时间:2014-10-04 作者:Alain Jacomet Forte

如何使分类术语具有自定义永久链接?(以期限为基础,例如。/anything/here 对于名为food 还有一个术语叫做burrito)

我认为没有更多的解释,因此,我的想法是:

  • pre_get_posts, $_SERVER 检测针对选项表保存的url

1 个回复
SO网友:Mike Crantea

我做了一些类似的事情,但我只是通过一个元键进行过滤。

add_action(\'init\', \'add_custom_meta_url\');
function add_custom_meta_url() {
    global $wp,$wp_rewrite;
    $wp->add_query_var(\'food\');
    $wp_rewrite->add_rule(\'food/([^/]+)\',\'index.php?food=$matches[1]\',\'top\');
    $wp_rewrite->flush_rules(false); // This should really be done in a plugin activation
}
然后通过查询变量将其应用于索引查询(您必须以分类法值为目标,而不是自定义元,并将比较调整为=):

add_action(\'parse_query\', \'apply_custom_meta_to_query\');
function apply_custom_meta_to_query(&$query) {
    if (isset($query->query[\'food\'])) {
        $query->query_vars[\'meta_key\'] = \'food\';
        $query->query_vars[\'meta_value\'] = $query->query[\'food\'];
        $query->query_vars[\'meta_compare\'] = \'LIKE\';
    }
}
有更有效的方法可以做到这一点,但请继续关注wp_rewrite, 因为这是WordPress处理漂亮URL的方式,而不是试图侵入事物流。

祝你好运

结束

相关推荐

Custom permalinks structure

我希望有这样的结构:www.mysite.com/2013 (必须显示2013年的所有职位)www.mysite.com/my-category/2013 (必须显示2013年和“我的类别”类别的所有帖子)www.mysite.com/my-category/my-tag/ (必须显示所有类别为“我的类别”和标记为“我的标记”的帖子)www.mysite.com/my-category/ (必须显示“我的类别”类别的所有帖子)www.mysite.com/my-