コアテーマファイルへのリンク

ご存知のように、WordPressテーマはさまざまなテンプレートファイルから構築されています。通常、これには少なくとも sidebar.phpheader.phpfooter.php が含まれます。これらは テンプレートタグ を使用して呼び出されます。例えば:

これらのファイルのカスタムバージョンを作成することもでき、ファイル名を sidebar-{your_custom_template}.phpheader-{your_custom_template}.phpfooter-{your_custom_template}.php と名付けることができます。その後、カスタムテンプレート名を唯一のパラメータとして使用してテンプレートタグを使用できます。次のように:

  1. get_header( 'your_custom_template' );
  2. get_footer( 'your_custom_template' );
  3. get_sidebar( 'your_custom_template' );

WordPressはさまざまなファイルを組み合わせてページを作成します。ヘッダー、フッター、サイドバーの標準ファイルに加えて、カスタムテンプレートファイルを作成し、get_template_part() を使用してページの任意の場所で呼び出すことができます。テーマ内にカスタムテンプレートファイルを作成するには、ファイルに適切な名前を付け、ヘッダー、サイドバー、フッターのファイルと同じカスタムテンプレートシステムを使用します:

  1. slug-template.php

例えば、投稿コンテンツを処理するカスタムテンプレートを作成したい場合、content.php というテンプレートファイルを作成し、ファイル名を content-product.php に拡張して製品コンテンツの特定のレイアウトを追加できます。その後、次のようにテーマ内でこのテンプレートファイルを読み込みます:

  1. get_template_part( 'content', 'product' );

テンプレートにさらに整理を加えたい場合は、テーマディレクトリ内に独自のディレクトリを作成して配置できます。例えば、プロファイルロケーション のためにさらにいくつかの コンテンツ テンプレートを追加し、content-templates という独自のディレクトリにグループ化したとします。

あなたのテーマ my-theme のテーマ階層は次のようになるかもしれません。style.csspage.php は文脈のために含まれています。

  • themes
  • my-theme
  • content-templates
  • content-location.php
  • content-product.php
  • content-profile.php
  • style.css

コンテンツテンプレートを含めるには、slug 引数にディレクトリ名を前置きします。次のように:

  1. get_template_part( 'content-templates/content', 'location' );
  2. get_template_part( 'content-templates/content', 'product' );
  3. get_template_part( 'content-templates/content', 'profile' );

テーマディレクトリへのリンク

テーマのディレクトリにリンクするには、次の関数を使用できます:

子テーマを使用していない場合、この関数はテーマのメインフォルダへの完全なURIを返します。これを使用して、次のようにテーマ内のサブフォルダやファイルを参照できます:

  1. echo get_theme_file_uri( 'images/logo.png' );

子テーマを使用している場合、この関数は子テーマ内にファイルが存在する場合、そのファイルのURIを返します。子テーマ内にファイルが見つからない場合、関数は親テーマ内のファイルのURIを返します。これは、テーマを配布する際や、子テーマがアクティブであるかどうかに関係なく、特に重要です。

テーマのディレクトリ内のファイルへのパスにアクセスするには、次の関数を使用できます:

get_theme_file_uri() と同様に、これも子テーマ内にファイルが存在する場合、そのファイルのパスにアクセスします。子テーマ内にファイルが見つからない場合、関数は親テーマ内のファイルへのパスにアクセスします。

子テーマ内では、次の関数を使用して親テーマのディレクトリ内のファイルURIまたはパスにリンクできます:

get_theme_file_uri(), と同様に、次のようにサブフォルダやファイルを参照できます:

  1. echo get_parent_theme_file_uri( 'images/logo.png' );
  2. //or
  3. echo get_parent_theme_file_path( 'images/logo.png' );

存在しない可能性のあるファイルを参照する際には注意が必要です。これらの関数は、ファイルが存在するかどうかにかかわらず、URIまたはファイルパスを返します。ファイルが欠落している場合、これらの関数は壊れたリンクを返します。

関数 get_theme_file_uri()get_theme_file_path()get_parent_theme_file_uri()get_parent_theme_file_path() はWordPress 4.7で導入されました。

以前のWordPressバージョンでは、get_template_directory_uri()get_template_directory()get_stylesheet_directory_uri()get_stylesheet_directory() を使用してください。

新しい4.7の関数は、チェックプロセスの一部として古い関数を実行するため、可能な限り新しい関数を使用することが理にかなっています。

テンプレート内の動的リンク

パーマリンク設定に関係なく、ページや投稿に動的にリンクすることができます。これは、そのユニークな数値ID(管理インターフェースのいくつかのページで表示される)を参照することによって行います。

  1. <a href="<?php echo get_permalink($ID); ?>">This is a link</a>

これは、ページスラッグを後で変更してもリンクが壊れないため、ページメニューを作成する便利な方法です。IDは同じままです。しかし、これによりデータベースクエリが増える可能性があります。