列出来自自定义帖子类型的分类

时间:2019-02-18 作者:LovinQuaQua

我注册了一个名为events的自定义post类型的分类法。

// Register Custom Taxonomy
function events_categories() {

    $labels = array(
        \'name\'                       => _x( \'events_categories\', \'Taxonomy General Name\', \'text_domain\' ),
        \'singular_name\'              => _x( \'events_category\', \'Taxonomy Singular Name\', \'text_domain\' ),
        \'menu_name\'                  => __( \'Kategorien\', \'text_domain\' ),
        \'all_items\'                  => __( \'All Items\', \'text_domain\' ),
        \'parent_item\'                => __( \'Parent Item\', \'text_domain\' ),
        \'parent_item_colon\'          => __( \'Parent Item:\', \'text_domain\' ),
        \'new_item_name\'              => __( \'New Item Name\', \'text_domain\' ),
        \'add_new_item\'               => __( \'Add New Item\', \'text_domain\' ),
        \'edit_item\'                  => __( \'Edit Item\', \'text_domain\' ),
        \'update_item\'                => __( \'Update Item\', \'text_domain\' ),
        \'view_item\'                  => __( \'View Item\', \'text_domain\' ),
        \'separate_items_with_commas\' => __( \'Separate items with commas\', \'text_domain\' ),
        \'add_or_remove_items\'        => __( \'Add or remove items\', \'text_domain\' ),
        \'choose_from_most_used\'      => __( \'Choose from the most used\', \'text_domain\' ),
        \'popular_items\'              => __( \'Popular Items\', \'text_domain\' ),
        \'search_items\'               => __( \'Search Items\', \'text_domain\' ),
        \'not_found\'                  => __( \'Not Found\', \'text_domain\' ),
        \'no_terms\'                   => __( \'No items\', \'text_domain\' ),
        \'items_list\'                 => __( \'Items list\', \'text_domain\' ),
        \'items_list_navigation\'      => __( \'Items list navigation\', \'text_domain\' ),
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => true,
        \'query_var\'                  => true
    );
    register_taxonomy( \'events_category\', array( \'events\' ), $args );

}
add_action( \'init\', \'events_categories\', 0 );
我想这样显示分类法,但我收到一个错误(分类法无效)

$terms = get_terms( array(
    \'taxonomy\' => \'events_category\',
    \'hide_empty\' => false
) );

echo \'<pre>\';
var_dump( $terms );
echo \'</pre>\';
编辑:这是自定义帖子类型

// Register Custom Post Type - Veranstaltungen
// Register Custom Post Type
function leweb_events_post_type() {

    $labels = array(
        \'name\'                  => _x( \'Events\', \'Post Type General Name\', \'text_domain\' ),
        \'singular_name\'         => _x( \'Event\', \'Post Type Singular Name\', \'text_domain\' ),
        \'menu_name\'             => __( \'Events\', \'text_domain\' ),
        \'name_admin_bar\'        => __( \'Event\', \'text_domain\' ),
        \'archives\'              => __( \'Item Archives\', \'text_domain\' ),
        \'attributes\'            => __( \'Item Attributes\', \'text_domain\' ),
        \'parent_item_colon\'     => __( \'Parent Item:\', \'text_domain\' ),
        \'all_items\'             => __( \'All Items\', \'text_domain\' ),
        \'add_new_item\'          => __( \'Add New Item\', \'text_domain\' ),
        \'add_new\'               => __( \'Add New\', \'text_domain\' ),
        \'new_item\'              => __( \'New Item\', \'text_domain\' ),
        \'edit_item\'             => __( \'Edit Item\', \'text_domain\' ),
        \'update_item\'           => __( \'Update Item\', \'text_domain\' ),
        \'view_item\'             => __( \'View Item\', \'text_domain\' ),
        \'view_items\'            => __( \'View Items\', \'text_domain\' ),
        \'search_items\'          => __( \'Search Item\', \'text_domain\' ),
        \'not_found\'             => __( \'Not found\', \'text_domain\' ),
        \'not_found_in_trash\'    => __( \'Not found in Trash\', \'text_domain\' ),
        \'featured_image\'        => __( \'Featured Image\', \'text_domain\' ),
        \'set_featured_image\'    => __( \'Set featured image\', \'text_domain\' ),
        \'remove_featured_image\' => __( \'Remove featured image\', \'text_domain\' ),
        \'use_featured_image\'    => __( \'Use as featured image\', \'text_domain\' ),
        \'insert_into_item\'      => __( \'Insert into item\', \'text_domain\' ),
        \'uploaded_to_this_item\' => __( \'Uploaded to this item\', \'text_domain\' ),
        \'items_list\'            => __( \'Items list\', \'text_domain\' ),
        \'items_list_navigation\' => __( \'Items list navigation\', \'text_domain\' ),
        \'filter_items_list\'     => __( \'Filter items list\', \'text_domain\' ),
    );
    $args = array(
        \'label\'                 => __( \'Event\', \'text_domain\' ),
        \'description\'           => __( \'Veranstaltungen von Besuchern\', \'text_domain\' ),
        \'labels\'                => $labels,
        \'supports\'              => array( \'title\', \'editor\', \'revisions\', \'custom-fields\' ),
        \'taxonomies\'            => array( \'events_category\'),
        \'hierarchical\'          => true,
        \'public\'                => true,
        \'show_ui\'               => true,
        \'show_in_menu\'          => true,
        \'menu_position\'         => 5,
        \'menu_icon\'             => \'dashicons-admin-page\',
        \'show_in_admin_bar\'     => true,
        \'show_in_nav_menus\'     => true,
        \'can_export\'            => true,
        \'has_archive\'           => true,
        \'exclude_from_search\'   => false,
        \'publicly_queryable\'    => true,
        \'capability_type\'       => \'page\',
    );
    register_post_type( \'events\', $args );

}
add_action( \'init\', \'leweb_events_post_type\', 0 );

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

我刚刚自己想出了一个解决办法。似乎这个特定的代码需要在循环中-所以它现在可以工作了,操作代码是正确的。。。

SO网友:Krzysiek Dróżdż

在您的代码中,您将使用以下内容注册分类法:

register_taxonomy( \'events_category\', array( \'events\' ), $args );
因此,分类法被称为events_category.

并且在get_terms 您使用events_categories.

以下是固定获取条款部分:

$terms = get_terms( array(
    \'taxonomy\' => \'events_category\',
    \'hide_empty\' => false
) );

相关推荐

outputting taxonomy hierarchy

我有一个网站,其中列出了侧导航的子类别列表。我需要将这些子类别划分为更具体的层次结构。它当前正在从父类别输出一个列表,但不显示超出该类别的层次结构。我有点被困在下一步了。这就是我现在所拥有的: foreach($subcategory as $key => $val) { $args = array( \'posts_per_page\' => -1, \'post_type\' => \'storefront\',