自定义帖子类型的清除URL固定链接

时间:2012-04-03 作者:Romes

我有一个自定义内容类型photo_group 这是一组照片。

我想去mysite.com/photos 把我所有的照片组都放在那个页面上。

如何在不创建“页面”和设置模板的情况下做到这一点?或者这就是我必须采取的方法?

谢谢

2 个回复
最合适的回答,由SO网友:tollmanz 整理而成

罗密斯,

你建议的方法肯定会奏效,而且可能是最简单的;然而,我可以肯定地看到这种情况并不理想。要更“以编程方式”完成此操作,您需要执行以下操作:

1) 设置新的查询变量

2) 生成新的重写规则以理解该查询变量

3) 当查询变量匹配时重定向到模板。

这里有一些代码可以帮助您。

1: 添加查询变量

function query_vars( $public_query_vars ) {
    $public_query_vars[] = \'romes_var\';
    return $public_query_vars;
}
add_filter( \'query_vars\', \'romes_query_vars\' );
2:关联重写规则以处理查询变量

function romes_generate_rewrite_rules( $wp_rewrite ) {
    $new_rules = array();
    $new_rules[\'(photos)/?$\'] = \'index.php?romes_var=$matches[1]\';
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( \'generate_rewrite_rules\', \'romes_generate_rewrite_rules\' );
3:检测查询变量并重定向到模板

function romes_template_redirect() {
    if ( \'photos\' == get_query_var( \'romes_var\' ) ) {
        load_template( get_stylesheet_directory_uri() . \'/template-photos.php\' );
        exit();
    }
}
add_action( \'template_redirect\', \'romes_template_redirect\' );
这段代码并没有经过专门测试,但应该可以帮助您完成大部分工作。在尝试使用此代码运行脚本之前,请确保刷新重写规则(只需访问permalinks页面)。

SO网友:Tim Yao

你只需要custom taxonomy 这样做。您不需要为mysite.com/photos, 它可以是一个分类页面。例如:创建名为“”的自定义分类法photos“。然后可以将taxonomy.php复制到taxonomy-photos.php 作为自定义分类页面模板文件。

Check it on WordPress Codex: Custom Taxonomies Codex

一些plugins 可以帮助您以非常简单的方式创建这些自定义分类法。只要找到你喜欢的:http://wordpress.org/extend/plugins/search.php?q=Custom+Taxonomies

祝你好运

结束