質問: 投稿とページの両方のページ属性パネルにテンプレートを追加しますか? メインテーマをアクティブテーマのままにしておきたいのですが、 "page/post attributes" パネルを介してユーザーが若干異なるレイアウトを選択できるようにします。理想的には、このレイアウトをメインテーマの "styles" ディレクトリの下に、それ自身のフォルダに保存したいです。 mytheme>スタイル>私の特別なレイアウト> style.css "page attributes" パネルに、 "my-special-layout" ...という名前のテンプレートがあります。しかし、私は2つの問題があります... "child" テーマを "page attributes" /パネルに表示させることができないようです。 (私のメインテーマディレクトリの下にフォルダを追加し、そこに値 "style.css"を持つtemplate: my_main_theme_directoryファイルを置くだけです)。しかし、「ページ属性」パネルにテンプレートが表示されることはありません。 postエディタで "page attributes" パネルが表示されません。テンプレートを 投稿 および ページ に適用できるようにしたいです。ポストエディタでこのパネルを取得する方法
回答: あなたは子供のテーマを正しくやっていません。子テーマは、すべての人が使用する必要がある個別のテーマですが、提供されていないすべてのテンプレート部分については別のテーマに依存しています。欲しいのはテンプレートです。 http://codex.wordpress.org/theme_development#defining_custom_templates 基本的には、テーマのルートディレクトリに新しいテーマファイルを作成するだけです(例:foobar.php)。/* template name: foobar */ それはあなたにfoobarと呼ばれる新しいテンプレートを与えるでしょう(明らかに、あなたが望むものにfoobarを変えてください。それはエディタページのドロップダウンメニューに現れる名前です)。現時点では、wordpressはページとカスタム投稿タイプのテンプレートのみをサポートし、投稿はサポートしていません。これをハックする方法はいくつかあります。例えば、投稿上の投稿メタをチェックしたり、テンプレート上で引っ張ったりすることです。function my_post_templater($template){ if( !is_single() ) return $template; global $wp_query; $c_template = get_post_meta( $wp_query->post->id, '_wp_page_template', true ); return empty( $c_template ) ? $template : $c_template; } add_filter( 'template_include', 'my_post_templater' ); function give_my_posts_templates(){ add_post_type_support( 'post', 'page-attributes' ); } add_action( 'init', 'give_my_posts_templates' ); そのコードをあなたのテーマのfunctions.phpファイルに入れても、それはうまくいくはずです(あなたが実際にあなたのテーマフォルダにカスタムテンプレートを持っている限り)。子供のテーマの詳細については、こちらを参照してください。 http://codex.wordpress.org/child_themes