Wordpress/Movable Type

2014年4月19日 at 3:43 AM

AIT Themeのカスタムタクソノミー編集|カテゴリーやタグを増やす方法

AIT Themeは独自フレームワークによるWordpressテーマです。

http://www.ait-themes.com/

 

 

高機能なものなので、標準ですでにカスタムタクソノミーが作られているテーマもあります。

当方が使用しているのは「Categories」のほかに「Locations」というカテゴリーが作られていて、通常分類だけでなく、都道府県という別次元でもカスタム投稿を区分できる仕組みになってました。

 

 

 

ここにもう1次元、「人物」というカテゴリーを追加したい!ということでやろうとしました。

通常は、以下サイト様のようにfunction.phpを編集することで行います。カスタムタクソノミーを管理するCustom Post Type UIというプラグインを使ってもいいのですが、先述のようなテーマですでにカスタム分類を使用しているものは、別の場所に切っている可能性があるので、このプラグインで制御できる範囲ではありません。

2014/4/10 備忘6 サイト作るうえでよく忘れること

2012/7/13 番長ブログ WordPressの「カスタム投稿」「カスタム分類」を使ってみよう

 

 

AIT Themeも御多分にもれず、AITフレームワーク内に記述されていました。

[WP導入ディレクトリ]\wp-content\themes\directory\AIT\Framework\CustomTypes\dir-item\dir-item.php

 

 

以下ピンクを追加してみる。

 

function aitDirItemPostType() {

    register_post_type( 'ait-dir-item',
        array(
            'labels' => array(
                'name'            => 'Items',
                'singular_name' => 'Item',
                'add_new'        => 'Add new',
                'add_new_item'    => 'Add new item',
                'edit_item'        => 'Edit item',
                'new_item'        => 'New item',
                'not_found'        => 'No items found',
                'not_found_in_trash' => 'No items found in Trash',
                'menu_name'        => 'Items',
            ),
            'description' => 'Manipulating with items',
            'public' => true,
            'show_in_nav_menus' => true,
            'supports' => array(
                'title',
                'thumbnail',
                'author',
                'editor',
                'excerpt',
                'comments',
            ),
            'show_ui' => true,
            'show_in_menu' => true,
            'menu_icon' => AIT_FRAMEWORK_URL . '/CustomTypes/dir-item/dir-item.png',
            'menu_position' => $GLOBALS['aitThemeCustomTypes']['dir-item'],
            'has_archive' => true,
            'query_var' => 'dir-item',
            'rewrite' => array('slug' => 'item'),
            'capability_type' => 'ait-dir-item',
            'map_meta_cap' => true
        )
    );
    aitDirItemTaxonomies();

    flush_rewrite_rules(false);
}

function aitDirItemTaxonomies() {

    register_taxonomy( 'ait-dir-item-category', array( 'ait-dir-item' ), array(
        'hierarchical' => true,
        'labels' => array(
            'name'            => 'Item Categories',
            'singular_name' => _x( 'Category', 'taxonomy singular name', 'ait'),
            'search_items'    => __( 'Search Category', 'ait'),
            'all_items'        => __( 'All Categories', 'ait'),
            'parent_item'    => __( 'Parent Category', 'ait'),
            'parent_item_colon' => __( 'Parent Category:', 'ait'),
            'edit_item'        => __( 'Edit Category', 'ait'),
            'update_item'    => __( 'Update Category', 'ait'),
            'add_new_item'    => __( 'Add New Category', 'ait'),
            'new_item_name' => __( 'New Category Name', 'ait'),
        ),
        'show_ui' => true,
        'rewrite' => array( 'slug' => 'cat' ),
        'capabilities' => array(
                'assign_terms' => 'assign_dir_category'
            )
    ));

    register_taxonomy( 'ait-dir-item-location', array( 'ait-dir-item' ), array(
        'hierarchical' => true,
        'labels' => array(
            'name'            => 'Item Locations',
            'singular_name' => _x( 'Location', 'taxonomy singular name', 'ait'),
            'search_items'    => __( 'Search Location', 'ait'),
            'all_items'        => __( 'All Locations', 'ait'),
            'parent_item'    => __( 'Parent Location', 'ait'),
            'parent_item_colon' => __( 'Parent Location:', 'ait'),
            'edit_item'        => __( 'Edit Location', 'ait'),
            'update_item'    => __( 'Update Location', 'ait'),
            'add_new_item'    => __( 'Add New Location', 'ait'),
            'new_item_name' => __( 'New Location Name', 'ait'),
        ),
        'show_ui' => true,
        'rewrite' => array( 'slug' => 'loc' ),
        'capabilities' => array(
                'assign_terms' => 'assign_dir_location'
            )
    ));

    register_taxonomy( 'ait-dir-item-humans', array( 'ait-dir-item' ), array(
        'hierarchical' => true,
        'labels' => array(
            'name'            => 'Item Humans',
            'singular_name' => _x( 'Humans', 'taxonomy singular name', 'ait'),
            'search_items'    => __( 'Search Humans', 'ait'),
            'all_items'        => __( 'All Humans', 'ait'),
            'parent_item'    => __( 'Parent Humans', 'ait'),
            'parent_item_colon' => __( 'Parent Humans:', 'ait'),
            'edit_item'        => __( 'Edit Humans', 'ait'),
            'update_item'    => __( 'Update Humans', 'ait'),
            'add_new_item'    => __( 'Add New Humans', 'ait'),
            'new_item_name' => __( 'New Humans Name', 'ait'),
        ),
        'show_ui' => true,
        'rewrite' => array( 'slug' => 'hu' ),
        'capabilities' => array(
                'assign_terms' => 'assign_dir_humans'
            )
    ));

}

 

 

カテゴリのような入力欄を記事投稿画面に欲しい場合は、register_taxonomyのhierarchicalをtrueに。
タグのような入力欄を記事投稿画面に欲しい場合は、register_taxonomyのhierarchicalをfalseにします。

 

AIT

AIT02

これで「Item Human」というカテゴリーがもう一次元追加されました。

 

「施設カテゴリー(Categories)」「地域カテゴリー(Locations)」「戦国武将カテゴリー(Humans)」と三次元でカテゴリー検索できるようになりました。

 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



こちらの関連記事もオススメ!