2017-08-08 9 views
0

編集:これはハイブリッドコアであり、明らかにテンプレート階層が異なることがわかりました。私はまだ下の私の問題を解決していない。Wordpressカスタム投稿タイプ - 投稿属性:テンプレート。テンプレートが表示され、バックエンドに保存されますが、デフォルトのテーマファイルがレンダリングされています

タイトルに加えて。私は、バックエンドでテンプレートを選択できる場合、その選択を尊重しなければならないと考えています。しかしそれは変わらない。私は、デフォルトの代わりに他のテンプレートファイルをテストしました。

私のカスタムポストタイプを追加する機能です。これはうまく動作します。

add_action('init', 'register_cpt_location'); 

function register_cpt_location() { 

$labels = array(
    'name' => _x('Locations', 'info_locaiton'), 
    'singular_name' => _x('Location', 'info_location') 
); 

$args = array(
    'labels' => $labels, 
    'description' => 'Custom Post Type for Location', 
    'hierarchical' => true, 
    'supports' => array('title', 'editor', 'thumbnail', 'custom-fields', 'revisions', 'page-attributes'), 
    'public' => true, 
    'show_ui' => true, 
    'show_in_menu' => true, 
    'menu_position' => 6, 
    'show_in_nav_menus' => true, 
    'publicly_queryable' => true, 
    'exclude_from_search' => true, 
    'has_archive' => true, 
    'query_var' => true, 
    'can_export' => true, 
    'rewrite' => array( 
     'slug' => 'location', 
     'with_front' => false, 
     'feeds' => true, 
     'pages' => true 
    ), 
    'menu_icon' => 'dashicons-location', 
    'capability_type' => 'post' 
); 

register_post_type('info_location', $args); 
} 

カスタム投稿タイプのテンプレートを追加すると(いくつかの投稿でのみ使用する)、メタボックスが新しいテンプレートで表示されます。ただし、ライブページではカスタムポストタイプのデフォルトテンプレートが引き続き使用されます。

デフォルトのテンプレートは「info_location.php」です。

これは、テンプレートファイル "info_location-fm.php"の私の頭の情報です。

(下)テンプレート

showing the drop down for templates

新しいテンプレートを選択し、保存のためのドロップダウンを示す

/* 
* Template Name: Location-fm 
* Template Post Type: info_location 
*/ 

、まだ(下記)は動作しません

new template selected and saved, still doesn't work

答えて

1

ウィルこんにちは。あなたのテンプレートファイルは私に「single-info_location.php」と名前をつけて、メインテーマのルートに置かなければならないと思います。あるいは、あなたは子供のテーマを作ってそこに置くことができます。

$labels = array(
    'name' => _x('Locations', 'info_location'), 
    'singular_name' => _x('Location', 'info_location') 
); 
+0

オリジナルの開発者は、このサイトを開発するために「ハイブリッドコア」を使用していて、そのフレームワークがテンプレートを使用していないようです。私はそのドキュメントを読む必要があります。私はここで "single-info_location.php"と尋ねる前にあなたが言ったことを試しましたが、それでも "info_location.php"を使用しています。 –

関連する問題