WordPress.org (日本語)
ページテンプレートは、特定のページまたはページのグループに適用できる特定の種類のテンプレートファイルです。
注: WordPress 4.7以降、ページテンプレートはすべての投稿タイプをサポートしています。ページテンプレートを特定の投稿タイプに設定する方法の詳細については、以下の例を参照してください。
ページテンプレートは特定のタイプのテンプレートファイルであるため、ページテンプレートの特徴的な機能は次のとおりです。
- ページテンプレートは、ページのルックアンドフィールを変更するために使用されます。
- ページテンプレートは、単一のページ、ページセクション、またはページのクラスに適用できます。 。
- ページテンプレートは通常、個々のページまたはページのグループを対象として、高レベルの特異性を備えています。たとえば、
page-about.php
という名前のページテンプレートは、テンプレートファイルpage.php
またはindex.php
スラッグが「about」のページにのみ影響するため。 - ページテンプレートにテンプレート名がある場合、ページを編集するWordPressユーザーは、ページのレンダリングに使用するテンプレートを制御できます。
ページテンプレートの用途#ページテンプレートの用途
ページテンプレートは、投稿、ニュースの更新、カレンダーイベント、メディアファイルなどのサイトの動的コンテンツをページに表示します、など。サイトの他の部分とはまったく異なる特定の方法でホームページを表示することもできます。または、ページの一部に投稿にリンクする注目の画像を表示することもできます。他の場所に最新の投稿のリストを用意し、カスタムナビゲーションを使用します。ページテンプレートを使用してこれらのことを実現できます。
このセクションでは、ユーザーがユーザーを通じて選択できるページテンプレートを作成する方法を示します。管理画面。
たとえば、次のページテンプレートを作成できます。
- 全幅、1列
- サイドバー付きの2列右側に
- 左側にサイドバーがある2列
- 3列
上部
ページテンプレートテンプレート階層内#Pageテンプレート階層内のテンプレート
ユーザーがWebサイトを閲覧すると、WordPressはそのページのレンダリングに使用するテンプレートを選択します。テンプレート階層で前に学習したように、WordPressは次の順序でテンプレートファイルを検索します。
- ページテンプレート—ページにカスタムテンプレートが割り当てられている場合、WordPressはそのファイルを検索し、見つかった場合はそのファイルを検索します。 、それを使用します。
-
page-{slug}.php
—カスタムテンプレートが割り当てられていない場合、WordPressはページのスラッグを含む特殊なテンプレートを探して使用します。 -
page-{id}.php
—ページのスラッグを含む特殊なテンプレートが見つからない場合、WordPressはページのIDで名前が付けられた特殊なテンプレートを探して使用します。 -
page.php
—ページのIDを含む特殊なテンプレートが見つからない場合、WordPressはテーマのデフォルトのページテンプレートを探して使用します。 -
singular.php
—page.php
が見つからない場合、WordPressは、投稿の種類に関係なく、単一の投稿に使用されるテーマのテンプレートを検索して使用します。 -
index.php
—具体的でない場合ページテンプレートが割り当てられるか検出されると、WordPressはデフォルトでテーマのインデックスファイルを使用してページをレンダリングします。
アラート:。ページの投稿タイプではなく、アーカイブの複数のページを表示するために使用されます。
トップ
ページテンプレート目的&ユーザーコントロール#Pageテンプレート目的&ユーザーコントロール
テーマのカスタムページテンプレートを作成する場合は、いくつかのことを決定する必要があります。続行する前に:
- ページテンプレートが特定の1ページ用か任意のページ用か。および
- テンプレートで使用できるユーザーコントロールの種類。
テンプレート名を持つすべてのページテンプレートは、ユーザーが作成または編集するときに選択できます。ページ。使用可能なテンプレートのリストは、ページ>新しい>属性の追加>テンプレートにあります。 。したがって、WordPressユーザーは、テンプレート名が付いた任意のページテンプレートを選択できますが、これは意図しない場合があります。
たとえば、「バージョン情報」ページに特定のテンプレートが必要な場合は、そうではない可能性があります。すべてのページでグローバルに使用できるため、そのページテンプレートに「テンプレートについて」という名前を付けるのが適切です(つまり、ユーザーは任意のページに適用できます)。代わりに、シングルユーステンプレートを作成すると、ユーザーが[概要]ページにアクセスするたびに、WordPressが適切なテンプレートでページをレンダリングします。
逆に、多くのテーマには、ページの列数を選択する機能が含まれています。これらの各オプションは、グローバルに利用できるページテンプレートです。WordPressユーザーにこのグローバルオプションを提供するには、オプションごとにページテンプレートを作成し、それぞれにテンプレート名を付ける必要があります。
テンプレートがグローバル使用か単一使用かを判断する方法は、ファイルには名前が付けられており、特定のコメントがあるかどうかがわかります。
注:単一のユースケースのように見える場合でも、テンプレートをグローバルに利用できるようにすることが適切な場合があります。リリース用のテーマを作成する場合、ユーザーがページにどのような名前を付けるかを予測するのは難しい場合があります。ポートフォリオページは、すべてのWordPressユーザーがポートフォリオに同じ名前を付けたり、同じページIDを持っているわけではなく、そのテンプレートを使用したい場合があるため、優れた例です。
トップ
ページテンプレートのファイル編成#ページテンプレートのファイル編成
テーマファイルの整理で説明したように、WordPressはサブフォルダーのページテンプレートを認識します。したがって、グローバルページテンプレートをこのフォルダに保存して、整理しやすくすることをお勧めします。
アラート:専用のページテンプレートファイル(1回だけ使用するために作成されたもの)は、サブフォルダ、または子テーマを使用している場合は親テーマのフォルダ。
トップ
グローバルに使用するカスタムページテンプレートの作成#カスタムページテンプレートの作成グローバルに使用する場合
場合によっては、任意のページまたは複数のページでグローバルに使用できるテンプレートが必要になります。一部の開発者は、page_two-columns.php
アラート:重要!などのファイル名プレフィックスを使用してテンプレートをグループ化します。 page-
をプレフィックスとして使用しないでください。WordPressはファイルを特殊なテンプレートとして解釈し、サイトの1ページにのみ適用することを目的としています。
使用できないテーマファイルの命名規則とファイル名については、予約済みのテーマファイル名を参照してください。
ヒント:すばやく安全に作成する方法新しいページテンプレートは、page.php
のコピーを作成し、新しいファイルに個別のファイル名を付けることです。そうすれば、他のページのHTML構造から始めて、必要に応じて新しいファイルを編集できます。
グローバルテンプレートを作成するには、上部に開始PHPコメントを記述します。テンプレートの名前を記載したファイル。
<?php /* Template Name: Example Template */ ?>
次のことをお勧めします。 WordPressユーザーがページを編集しているときに名前が表示されるため、テンプレートの機能を説明する名前を選択します。たとえば、テンプレートにホームページ、ブログ、ポートフォリオという名前を付けることができます。
TwentyFourteenテーマのこの例では、全幅ページというページテンプレートを作成します:
<?php/*** Template Name: Full Width Page** @package WordPress* @subpackage Twenty_Fourteen* @since Twenty Fourteen 1.0*/
ファイルをテーマのフォルダー(例:page-テンプレート)、管理ダッシュボードのページ>編集画面に移動します。
On the right hand side under attributes you"ll see template. This is where users are able to access your global page templates.
Tip: The select list has a maximum width of 250px, so longer names may be cut off.
トップ
1つの特定のページのカスタムページテンプレートの作成#1つの特定のページのカスタムページテンプレートの作成
テンプレート階層ページで説明したように、特定のページのテンプレートを作成できます。 1つの特定のページのテンプレートを作成するには、既存のpage.php
ファイルをコピーし、ページのスラッグまたはIDに名前を変更します。
-
page-{slug}.php
-
page-{ID}.php
例:Aboutページに「about」のスラッグがありますアクティブなテーマのフォルダにpage-about.php
またはpage-6.php
という名前のファイルがある場合、WordPressはそのファイルを自動的に検索して使用します。 [概要]ページをレンダリングするには。
使用するには、専用のページテンプレートがテーマのフォルダ(つまり、/ wp-content / themes / my-theme-name /)にある必要があります。
トップ
特定の投稿タイプのページテンプレートの作成#特定の投稿タイプのページテンプレートの作成
デフォルトでは、「ページ」投稿タイプでカスタムページテンプレートを使用できます。
特定の投稿タイプのページテンプレートを作成するには、テンプレート名の下に、テンプレートでサポートする投稿タイプを含む行を追加します。
例:
<?php/*Template Name: Full-width layoutTemplate Post Type: post, page, event*/// Page code here...
アラート:ページテンプレートを投稿タイプに追加するこの機能「ページ」以外の投稿タイプはWordPress4.7からのみサポートされます
投稿タイプに少なくとも1つのテンプレートが存在する場合、「投稿属性」メタボックスがバックエンドに表示されます。 page-attributesなどの投稿タイプのサポートを追加する必要はありません。 「投稿属性」ラベルは、投稿タイプを登録するときに「属性」ラベルを使用して投稿タイプごとにカスタマイズできます。
下位互換性:
テーマを公開したいとします。投稿タイプテンプレートのサポート付き。 4.7より前のWordPressバージョンは、通常の投稿に対してのみ機能しますが、テンプレート投稿タイプヘッダーを無視し、ページテンプレートのリストにテンプレートを表示します。これを防ぐには、theme_page_templatesフィルターにフックして、リストから除外します。次に例を示します。
完全なソースコードを展開する完全なソースコードを折りたたむ
これにより、カスタム投稿をサポートできます完全な下位互換性を維持しながら、WordPress4.7以降でテンプレートを入力します。
theme_page_templatesは実際には動的なtheme_ {$ post_type} _templatesフィルターであることに注意してください。フック名の動的部分$ post_typeは、テンプレートでサポートされている投稿タイプを参照します。例えば。 theme_product_templatesにフックして、商品投稿タイプのテンプレートのリストをフィルタリングできます。
トップ
ページテンプレートでの条件付きタグの使用#ページテンプレートでの条件付きタグの使用
テーマのpage.php
ファイルの条件付きタグを使用して、ページ固有の小さな変更を加えることができます。たとえば、次のサンプルコードは、フロントページのファイルheader-home.php
をロードしますが、バージョン情報ページの別のファイル(header-about.php
)をロードします。次に、デフォルトのheader.php
を他のすべてのページに適用します。
if ( is_front_page() ) :get_header( "home" );elseif ( is_page( "About" ) ) :get_header( "about" );else:get_header();endif;
条件付きタグについて詳しくは、こちらをご覧ください。
トップ
ページテンプレートの識別#ページテンプレートの識別
Ifテンプレートでbody_class()
関数を使用すると、WordPressは投稿タイプクラス名(iv id = “d5a2d55878]のbody
タグにクラスを出力します。 “> )、ページのID(page-id-{ID}
)、および使用されるページテンプレート。デフォルトのpage.php
の場合、生成されるクラス名はpage-template-default
:
<body class="page page-id-6 page-template-default">
カスタムページテンプレートを使用する場合、クラスpage-template
は特定のテンプレートに名前を付けるクラスとともに印刷します。たとえば、カスタムページテンプレートファイルの名前が次の場合:
<?php/* Template Name: My Custom Page */?gt;
次に、生成されるレンダリングされたHTMLは次のようになります:
<body class="page page-id-6 page-template page-template-my-custom-page-php">
page-template-my-custom-page-php
body
タグに適用されるクラス。
トップ
ページテンプレート関数#Pageテンプレート関数
これらの組み込みのWordPress関数とメソッドは、ページテンプレートの操作に役立ちます。
-
get_page_template()
はページのレンダリングに使用されるページテンプレートのパス。 -
wp_get_theme()->get_page_templates()
は、現在アクティブなテーマで使用可能なすべてのカスタムページテンプレートを返します(get_page_templates()
はWP_Theme
クラスのメソッドです。 -
is_page_template()
はtrueまたはfalseを返します。カスタムページテンプレートを使用してページをレンダリングしたかどうか。 -
get_page_template_slug()
rカスタムフィールド_wp_page_template
の値を返します(値が空または「デフォルト」の場合はnull
)。ページにカスタムが割り当てられている場合テンプレートの場合、そのテンプレートのファイル名は、"_wp_page_template"
という名前のカスタムフィールドの値として(wp_postmeta
データベーステーブルに)保存されます。 (アンダースコアで始まるカスタムフィールドは、編集画面のカスタムフィールドモジュールには表示されません。)