web-dev-qa-db-ja.com

管理メニューの投稿タイプでカスタムテンプレートを切り替える

管理者メニューで投稿タイプを作成しました。

function codex_custom_init() {

$labels = array(
    'name'               => _x( 'Book', 'post type general name', 'your-plugin-textdomain' ),
    'singular_name'      => _x( 'Book', 'post type singular name', 'your-plugin-textdomain' ),
    'menu_name'          => _x( 'Books', 'admin menu', 'your-plugin-textdomain' ),
    'name_admin_bar'     => _x( 'Books', 'add new on admin bar', 'your-plugin-textdomain' ),
    'add_new'            => _x( 'add Books', 'book', 'your-plugin-textdomain' ),
    'add_new_item'       => __( 'add Books', 'your-plugin-textdomain' ),
    'new_item'           => __( 'add Books', 'your-plugin-textdomain' ),
    'edit_item'          => __( 'add Books', 'your-plugin-textdomain' ),
    'view_item'          => __( 'add Books', 'your-plugin-textdomain' ),
    'all_items'          => __( 'add Books', 'your-plugin-textdomain' ),
    'search_items'       => __( 'Seite suchen', 'your-plugin-textdomain' ),
    'parent_item_colon'  => __( 'Parent Seiten:', 'your-plugin-textdomain' ),
    'not_found'          => __( 'No Books.', 'your-plugin-textdomain' ),
    'not_found_in_trash' => __( 'No Books.', 'your-plugin-textdomain' ),
    'archives' => __( 'Books Archiv' ),
    'attributes' => __( 'Books Attribute' ),
    'insert_into_item' => __( 'add Books' ),
    'uploaded_to_this_item' => __( 'upload Books' ),
    'page' => get_stylesheet_directory_uri().'/template-test.php',
    'capabilities' => array(
    'edit_post'          => 'edit_Books',
    'read_post'          => 'read_Books',
    'delete_post'        => 'delete_Books',
    'delete_posts'       => 'delete_Books',
    'edit_posts'         => 'edit_Books',
    'edit_others_posts'  => 'edit_others_Books',
    'publish_posts'      => 'publish_Books',
    'read_private_posts' => 'read_private_Books',
    'create_posts'       => 'create_Books',),);

     $args = array(
    'labels'             => $labels,
    'description'        => __( 'Description.', 'your-plugin-textdomain' ),
    'public'             => false,
    'publicly_queryable' => false,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'maths' ),
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 20,
    'menu_icon'          => 'dashicons-welcome-learn-more',
        'hierarchical'       => true,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments', 'custom-fields','revisions', 'page-attributes', 'post-formats'),
        'post_type' => 'events',
    'posts_per_page' => 10,
    );

register_post_type( 'Books', $args );}}
add_action( 'init', 'codex_custom_init' );

また、ページ属性で関数 "Templates"を使用できないことに気付きました。それはカテゴリ "pages"でのみ利用可能ですが、私の作成した投稿typでは利用できません。これは欠けています:

Page Attributes

私がそれを利用可能にする方法を誰かが知っていますか?どうもありがとう。

2
Martin

投稿タイプに少なくとも1つのテンプレートが存在する場合、'page-attributes'の投稿タイプサポートを追加する必要なしに、 'Post Attributes'メタボックスがバックエンドに表示されます。投稿タイプを登録するときに、'attributes'ラベルを使用して、タイトル「投稿属性」を投稿タイプごとにカスタマイズできます。

カスタム投稿タイプ用のテンプレートはWordPress 4.7で導入されました、そしてあなたはこのように定義することができます:

<?php
/*
Template Name: Full-width layout
Template Post Type: post, page, product
*/

// … your code here

もっと詳しく知りたい場合は、 それに関する私の公式投稿 をチェックすることをお勧めします。

1
swissspidy