为什么自定义帖子类型需要“”Hierarchy“”参数设置?

时间:2012-02-02 作者:Mere Development

我正在努力理解关于CPT的一些事情,需要一些帮助。我可以看到分类法通常需要分层,但看不到自定义帖子类型是如何/何时进行的?

i、 我有一个叫做“项目”的CPT。此posttype注册了一个名为“fields”的分类法。在“字段”下,我有许多子项,如:

《纪录片》《自我承诺》《经典》《企业》《数字营销》等所以要在“纪录片”>“经典”中查看项目,我使用以下URL:mydomain。com/field/classic/

这就是我实际上有大约30个问题的地方:)但我只想问两个最紧迫的问题:

为什么“项目”CPT会有等级划分,以及如何进行等级划分感谢所有帮助,我已经花了大约3个小时玩这个和阅读它,我的脑袋都绕不过去了!

谢谢

以下是我的(裁剪过的)代码供参考:

function register_cpt_projects() {
$labels = array(
    \'name\' => _x(\'Projects\', \'projects\'),
    // all other labels etc..
);

$args = array(
    \'labels\' => $labels,
    \'hierarchical\' => true,
    \'supports\' => array(\'title\', \'editor\', \'author\', \'thumbnail\'),
    \'taxonomies\' => array(\'field\'),
    \'public\' => true,
    \'show_ui\' => true,
    \'show_in_menu\' => true,
    \'show_in_nav_menus\' => true,
    \'publicly_queryable\' => true,
    \'exclude_from_search\' => false,
    \'has_archive\' => true,
    \'query_var\' => true,
    \'can_export\' => true,
    \'rewrite\' => true,
    \'capability_type\' => \'post\'
);
register_post_type(\'projects\', $args);
}

add_action(\'init\', \'register_cpt_projects\');

function create_projects_tax(){
    register_taxonomy(\'field\', \'projects\', array(
       \'hierarchical\' => true,
       \'label\' => \'Fields\'
    ));
}
add_action(\'init\', \'create_projects_tax\');

2 个回复
SO网友:fuxia

当您有两个具有相似界面或共享属性的内容对象时,您就可以很好地选择分层帖子类型。

places 例如(参见this answer):

亚洲、欧洲、德国、柏林、奥地利、维也纳place 拥有相似的元数据:人口、地理坐标、口语。您可以重用相同的接口。

另外,如果你为每种地方创建一个单独的自定义帖子类型,你会遇到WordPress\'missing post-to-post relationship table.

SO网友:Chris_O

如果希望帖子类型的行为类似于页面,则自定义帖子类型只需要层次结构设置

如果您希望能够选择父项并拥有菜单顺序metabox,还需要添加\'page-attributes\' to the supports array.

The hierarchical argument 还允许您使用is_post_type_hierarchical() 条件标记。它支持post对象、post类型名称或post ID作为其单个参数。

是否可以像这样查看“经典”字段中的项目:mydomain。com/projects/classic(mydomain.com/projects显示所有项目,但进一步钻取会破坏它)

您可以使用rewrite参数定义单个post类型URL的显示方式:

slug:你想在帖子前面加上的slug
with\\u front:您的帖子类型是否应该使用permalink设置中的front base。

\'rewrite\' => array( \'slug\' => \'classic\', \'with_front\' => false ),

将使单个项目帖子的URL如下所示:

yoursite.com/classic/post-name

如果要创建存档URL:mydomain.com/projects/classic 您需要对register\\u taxonomy参数应用类似的重写规则。

您需要将重写slug设置为projects,并将\\u front设置为false。还要注意的是,register\\u taxonomy rewrite数组还支持:\'hierarchical\' - true or false allow hierarchical urls 这允许您在URL中的分类术语上使用完整的层次结构:

结束

相关推荐

Permalinks for quote authors

What I have:引用的网站,格式为:“引用文本”-引用作者参见quotup.com 对于我的考试网站(我为考试中的亵渎行为提前道歉)。What I\'m after:单击“-Quote Author”将启动一个包含该Quote Author所有引用的页面,URL为:示例。史蒂夫·史蒂文森,其中史蒂夫·史蒂文森是引文作者。What I\'ve done:创建了一个名为wp\\u qauthor的自定义表,该表通过post\\u meta(qauthor\\u id)绑定到wp\\u posts向函数