带肋骨(亚)分类的肋骨柱型

时间:2014-06-27 作者:Gijs

这个问题以前可能被问过,但我的语言不是英语,我真的找不到答案:

我得到了一个自定义的帖子类型:productsandscustom(hierarchy)taxonomy:collection

在axample的分类法中:-绘画(父税)--经典(子税)--现代(子税)

现在我想通过以下途径接触我的产品:收藏/绘画/经典/经典-绘画-1,但我有两个问题:

问题1:子税在url中没有父税:collection/paints/然后collection/classic/。。应该是收藏/绘画/经典/

问题2:如果我在“收藏/绘画”中选择一个产品(如classic-Paint-1),则转到“产品/classic-Paint-1”,而不是“收藏/绘画/classic/classic-Paint-1”

我希望这个大问题有一个简单的答案,提前谢谢

自定义帖子类型和分类的我的代码:

// Custom post type    
add_action(\'init\', \'cptui_register_my_cpt_producten\');
function cptui_register_my_cpt_producten() {
register_post_type(\'producten\', array(
\'label\' => \'Producten\',
\'description\' => \'\',
\'public\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'capability_type\' => \'post\',
\'map_meta_cap\' => true,
\'hierarchical\' => true,
\'rewrite\' => array(\'slug\' => \'producten\', \'with_front\' => true),
\'query_var\' => true,
\'menu_position\' => \'1\',
\'supports\' => array(\'title\',\'editor\'),
\'taxonomies\' => array(\'category\',\'post_tag\',\'collectie\'),
\'labels\' => array (
  \'name\' => \'Producten\',\'singular_name\' => \'Product\',\'menu_name\' => \'Producten\',\'add_new\' => \'Add Product\',\'add_new_item\' => \'Add New Product\',\'edit\' => \'Edit\',\'edit_item\' => \'Edit Product\',\'new_item\' => \'New Product\',\'view\' => \'View Product\',\'view_item\' => \'View Product\',\'search_items\' => \'Search Producten\',\'not_found\' => \'No Producten Found\',\'not_found_in_trash\' => \'No Producten Found in Trash\',\'parent\' => \'Parent Product\',
)
) ); }

// Custom taxonomy
add_action(\'init\', \'cptui_register_my_taxes_collectie\');
function cptui_register_my_taxes_collectie() {
register_taxonomy( \'collectie\',array (
  0 => \'producten\',
),
array( \'hierarchical\' => true,
    \'label\' => \'Collecties\',
    \'show_ui\' => true,
    \'query_var\' => true,
    \'show_admin_column\' => false,
    \'labels\' => array (
  \'search_items\' => \'Collectie\',
  \'popular_items\' => \'\',
  \'all_items\' => \'\',
  \'parent_item\' => \'\',
  \'parent_item_colon\' => \'\',
  \'edit_item\' => \'\',
  \'update_item\' => \'\',
  \'add_new_item\' => \'\',
  \'new_item_name\' => \'\',
  \'separate_items_with_commas\' => \'\',
  \'add_or_remove_items\' => \'\',
  \'choose_from_most_used\' => \'\',
)
) ); 
}

1 个回复
SO网友:Joey Yax

将帖子分配给分类法时,如果同时将其分配给顶级和子术语,则顶级将在永久链接中使用。如果您只选择子项,我相信父项也会显示出来。我同意,这是不理想的,你可以用wp_rewrite() 但有一种更简单的方法来获取父术语:

在帖子页面上,您需要wp_get_post_terms(). 这将返回与帖子关联的术语数组。如果您只需要文章的顶级术语,请在args数组中传递parent=0,如下所述。

$args = array( \'parent\' => 0 );
$terms = wp_get_post_terms( $post->ID, \'taxonomy_name\', $args );
echo \'<pre>\' . print_r( $terms, 1 ) . \'</pre>\'; // raw output

结束

相关推荐

Reslug a Custom Post Type

我为wordpress构建了一个带有自定义帖子类型的插件,在此过程中,我意识到我必须重新构建生成slug的方式。最初,我让cpt制作默认的slug,如new-post-1、new-post-2等。我意识到这很愚蠢,于是重新编写了命名约定,按照应该的方式从帖子标题创建slug。我现在唯一的问题是,我想让我在wordpress中输入的所有旧帖子都使用新的命名约定。是否有一个函数或方法可以告诉wordpress为特定的自定义帖子类型重建/重新生成slug。我找到了这个插件:http://wordpress.or