カスタム投稿の作成 その2 custom post functions.php

http://blog.ext.ne.jp/?p=1416
補足

—-
$params_post = array(
    'labels' => array( // 各メニュー。_x(.., 'books')は翻訳テキストのコンテキスト名。翻訳テキストがなければ __ を使用した方が良い)
        'name' => _x( '書籍', 'post type general name' ), // 複数名
        'singular_name' => _x( '書籍', 'post type singular name' ), // 単数名
        'add_new' => _x( '記事を新規追加', 'book'),
        'add_new_item' => __( '新規項目追加'),
        'edit_item' => __( '項目を編集' ),
        'new_item' => __( '新規項目' ),
        'all_items' => __('全て表示' ),
        'view_item' => __( '項目を表示' ),
        'seach_items' => __( '項目検索' ),
        'not_found' => __( '記事が見つかりません' ),
        'not_found_in_trush' => __( 'ゴミ箱に記事はありません' ).
        'parent_item_colon' => '', // 階層のとき「親〜」と表示される部分。デフォ"Parent Page"。
        ),
    'hierarchical' => false, // 投稿形式。('true' 固定ページ形式)
    'public' => true, // 記事を公開&編集するなら ‘true’ を指定する。
    'query_var' => false, // trueだと『/?投稿名=記事のスラッグ』、falseだと『/?投稿名&p=記事のスラッグ』
    'menu_icon' => get_bloginfo('template_url') . '/img/news_icon_s.jpg', // メニューに表示されるアイコン。
    'menu_position' => 5,
    'has_archive' => true, // アーカイブページを作るなら ‘true’.
    'supports' => array( // 投稿編集画面に表示する入力項目。
        'title',
        'editor',
        'author',
        'thumnbnail',
        'excerpt',
        'comments',
        'trackbacks',
        'custom-fields',
        ),
    'capability_type' => 'post', // 編集する権限レベル(投稿者)
    //'taxonomies' => array( 'books_category', 'books_tag' ) // 属したいタクソノミーがあれば。
    );
register_post_type( 'book', $params_post );

/* カスタムタクソノミー */
$params_taxonomy = array(
    'labels' => array(
        'name' => _x( '書籍類', 'taxonomy general name' ) , // 複数形の名前
        'singular_name' => _x( '書籍類', 'taxonomy singular name' ), // 単数系の名前
        'menu_name' => '書籍類', //メニュー名の文字列。メニュー項目の名前になります。無指定の場合、デフォルトで name のラベルが入ります。
        'all_items' => __( '全ての書籍類' ), //「すべての項目」の文字列。デフォルトは __( 'All Tags' ) または __( 'All Categories' )
        'edit_item' => __( '書籍類を編集' ), //「項目を編集」の文字列。デフォルトは __( 'Edit Tag' ) または __( 'Edit Category' )
        'view_item' => __( '書籍類を表示' ), //「項目を表示」の文字列。デフォルトは __( 'View Tag' ) または __( 'View Category' )
        'update_item' => __( '書籍類を編集' ), //「項目を更新」の文字列。デフォルトは __( 'Update Tag' ) または __( 'Update Category' )
        'add_new_item' => __( '新しい書籍類を追加' ), //「新しい項目を追加」の文字列。デフォルトは __( 'Add New Tag' ) または __( 'Add New Category' )
        'new_item_name' => __( '新しい書籍類の名前' ), //「新しい項目の名前」の文字列。デフォルトは __( 'New Tag Name' ) または __( 'New Category Name' )
        'parent_item' => null, //「親の項目」の文字列。これは投稿のタグのような階層化しないタクソノミーには使われません。デフォルトは null または __( 'Parent Category' )
        'parent_item_colon' => __( '親:' ), // parent_item と同じ文字列の後ろにコロン : を付けたもの。デフォルトは null または __( 'Parent Category:' )
        'search_items' => __( '書籍類を検索' ), // 「項目を検索」の文字列。デフォルトは __( 'Search Tags' ) または __( 'Search Categories' )
        'popular_items' => __( '人気の書籍類' ), // 「人気の項目」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Popular Tags' ) または null
        'separate_items_with_commas' => __( '書籍類をコンマで区切ってください' ), // タクソノミーのメタボックスで使われる「項目をコンマで区切ってください」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Separate tags with commas' ) または null
        'add_or_remove_items' => __( '書籍類の追加または削除' ), // JavaScript が無効なときにメタボックスで使われる「項目の追加または削除」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Add or remove tags' ) または null
        'choose_from_most_used' => __( 'よく使われている書籍類から選択' ), // タクソノミーのメタボックスで使われる「よく使われている項目から選択」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Choose from the most used tags' ) または null
        'not_found' => __( '書籍類はありません' ) // 項目が一つもないときにタクソノミーのメタボックスで「よく使われている項目から選択」をクリックすると表示される文字列。階層のあるタクソノミーには使われません。また、 (バージョン4.2以降) – カスタム分類のための項目がない場合には、これらの分類の一覧表で使用されるテキスト。デフォルトは__( 'No tags found.' ) または __( 'No categories found.' )
        ),
    'hierarchical' => true, //  true ならカテゴリーのような階層あり(子を持つ)タクソノミー、false ならタグのような階層化しないタクソノミー。初期値: false
    //'rewrite' =>  array( 'slug', 'books_cat' ) // false にすると、自動 URL 書き換え(俗にいう「pretty パーマリンク」)を回避できます。$args のように配列を指定すると、デフォルトのパーマリンクの URL 設定を下記のように変更できます。初期値: true
    // 'slug' – pretty パーマリンクの文字列として使用(例えば /tag/ ) – デフォルトは $taxonomy(タクソノミーの名前、すなわちスラッグ)
    // 'with_front' – true にするとパーマリンクの前に front ベースを入れる – デフォルトは true
    // 'hierarchical' – true にすると階層化した URL を使用可能にする(バージョン 3.1 で実装された) – デフォルトは false
    // 'ep_mask' – (prettyパーマリンクの場合は必須)このタクソノミーにエンドポイントマスクを割り当てる – デフォルトは EP_NONE. EP_MASKを指定しない場合は、prettyパーマリンクは機能しません。
    );

register_taxonomy(
    'book_cat', // タクソノミーの名前。英小文字とアンダースコアのみ、32文字以下。
    array( // 利用する投稿タイプ
        'post', // 普通の投稿で使う。
        'book', // カスタム投稿でも使う。
        ),
    $params_taxonomy
    );
/* 管理画面一覧にカテゴリを表示 */
add_filter('manage_edit-book_columns', 'manage_book_columns' );
add_action('manage_posts_custom_column', 'add_book_column', 10, 2);

/* 管理画面一覧にカテゴリを表示 */
function manage_book_columns($columns) {
    $columns[‘book_category’] = "カテゴリー";
    return $columns;
}
function add_book_column($column_name, $post_id){
    if( $column_name == 'book_category' ) {
    //カテゴリー名取得
        if( 'book_category' == $column_name ) {
            $book_category = get_the_term_list($post_id, 'book_cat', '', ', ', '' );
        }
        //該当カテゴリーがない場合「なし」を表示
        if ( isset($book_category) && $book_category ) {
            echo $book_category;
        } else {
            echo __('None');
        }
    }
}
—-

Leave a Reply

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