共享自定义分类--没有帖子?

时间:2012-05-30 作者:George Pearce

我一直在编写一些代码,使两个帖子类型能够共享一个自定义分类法。从管理的角度来看,它工作得非常好——但出于某种原因,当我查看网站上的分类法归档文件时,

/country/{country},尽管分类法中有两个帖子(每种类型一个),但它返回时显示“未找到帖子”,但不是404错误。我想知道我是否错过了一些让它工作的东西-我的代码如下。

register_taxonomy(
        \'country\',
        array(\'hotels\', \'attractions\'),
        array(
            \'label\' => __( \'Country\' ),
            \'hierarchical\' => true,
            \'sort\' => true,
            \'args\' => array( \'orderby\' => \'term_order\' ),
            \'rewrite\' => array( \'slug\' => \'country\' )
        )
    );

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

由于页面返回时显示“找不到帖子”,因此无论生成术语存档的模板页面是什么,都可能在其查询中不包含您的自定义帖子类型。

如果你看看模板,应该很容易看到。

SO网友:janw

您需要编辑分类页面。默认情况下,它将只获取“post”,而不是自定义post类型。

调整在具有正确PostType的页面上运行的查询。http://codex.wordpress.org/Class_Reference/WP_Query#Type_.26_Status_Parameters

SO网友:Djanym

不知道“共享自定义分类法的两种帖子类型”是什么意思。正如我所理解的,您可以尝试添加到函数。php类似于:

function customposttype_rewrites($wp_rewrite) {
    $newrules = array();
    $newrules[\'country/([^/]+)/?$\'] = \'index.php?name=$matches[1]&taxonomy=country&term=$matches[1]\';

    $wp_rewrite->rules = $newrules + $wp_rewrite->rules;
}
add_filter(\'generate_rewrite_rules\', \'customposttype_rewrites\');

结束

相关推荐

Custom taxonomy admin page

如果要为分类法创建自定义管理页面,可以设置\'show_ui\' => false 当您注册它以抑制默认管理页,然后创建新的管理页以替换它时。然而edit-tags.php?taxonomy=taxonomy-slug 仍然会将您带到“隐藏”默认管理页面。是否有办法将其定向到自定义管理页面。或者有没有其他方法可以绕过这个问题?