この時点で、
Easy Digital Downloads (EDD) はどのテーマとも連携できるように開発されたことをご存知かと思います。しかし、テーマが EDD をより活用できるようにするために、いくつかのことができます。
この記事では、テーマの単一商品テンプレートを作成するための基本を説明します。明確にしておくと、単一商品テンプレートは、サイトに新しいダウンロードを追加したときに作成されるフロントエンドページを表示するために使用されます。
WordPress のテンプレート階層
まず、一歩下がって WordPress 自体がどのように機能するかを調べる必要があります。WordPress のテーマは、サイトを表示するために連携するファイルの集まりにすぎません。これらのテーマファイルの一部は、サイトの HTML 構造を作成するために組み合わされるテンプレートおよびテンプレートコンポーネントです。
WordPress は、これらのテンプレートファイルをいつ、どのように使用するかを決定するために
テンプレート階層を使用します。階層全体の詳細には触れませんが、さまざまなテンプレートファイルがどのように関連しているかの視覚的な表現を以下に示します。
ここで説明するのは、単一投稿テンプレートと、それが単一商品ページの表示方法にどのように影響するかです。始めましょう。
単一投稿(および単数)テンプレート
wordpress.org から直接、単一投稿のテンプレート階層は次のとおりです。
single-{post-type}-{slug}.php– (4.4 以降) まず、WordPress は特定の投稿のテンプレートを探します。たとえば、投稿タイプがproductで、投稿のスラッグがdmc-12の場合、WordPress はsingle-product-dmc-12.phpを探します。single-{post-type}.php– 投稿タイプがproductの場合、WordPress はsingle-product.phpを探します。single.php– 次に WordPress はsingle.phpにフォールバックします。singular.php– 次にsingular.phpにフォールバックします。index.php– 最後に、前述のように、WordPress は最終的にindex.phpにフォールバックします。
これは、テーマファイルの名前が、いつ使用されるべきか、および特定のユースケースにおける階層内の「ランク」を WordPress に伝えることを意味します。
現時点で最も一般的なファイル名は、おそらく
single.php でしょう。single.php テンプレートは、単一のブログ投稿を表示するために使用されます。想像できるように、多くのユーザーは WordPress サイトに他のどのコンテンツよりもブログ投稿を多く公開しています。そのため、single.php は全体で最もランクが高いわけではありませんが、汎用的な単一投稿テンプレートとしては最もランクが高いものです。
アクティブなテーマ(または子テーマを使用している場合は親テーマ)のルートフォルダにsingle.phpファイルがある可能性が高いです。もしあれば、それは単一のブログ投稿を表示するために使用されます。しかし、single.phpファイルがなく、代わりにsingular.phpファイルがある可能性もあります。これはますます一般的になっています。その基本的な目的は、ブログ投稿、ページ、カスタム投稿タイプの基本的なエントリなど、WordPressの「単数形」の定義に該当するすべてのフロントエンドページのための、より「普遍的な」テンプレートであることです。
EDDがこれらのテンプレートをどのように使用するか、そしてそれをどのように変更できるかを説明しましょう。
single.php
前述のように、single.phpファイルは単一のブログ投稿を表示するために使用される基本的なテンプレートです。ブログ投稿のURLにアクセスすると、WordPressは表示する適切なテンプレートファイルを探してテーマ構造を検索します。single.phpファイルが一般的な答えです。
それを理解した上で、投稿(およびページ)はWordPressが「投稿タイプ」と呼ぶものであることも知っておく必要があります。WordPressにはいくつかのデフォルトの投稿タイプが組み込まれていますが、開発者はカスタム投稿タイプと呼ばれる独自の投稿タイプを作成することもできます。
EDD自体がシステムにいくつかのカスタム投稿タイプを導入します。そのうちの1つがダウンロードです。ここではそれだけを説明します。
上にスクロールして、単一投稿のテンプレート階層をもう一度見ると、single-{post-type}.phpがsingle.phpよりもランクが高いことに気づくでしょう。これは2つのことを意味します。
single-{post-type}.phpがシナリオに適合する場合、single.phpよりも前に使用されます。single-{post-type}.phpテンプレートが存在しない場合、次の選択肢はsingle.phpです。
テーマがEDD専用に作成されていない限り、デフォルトではあなたの状況は2番目のシナリオに該当します。EDDのダウンロードカスタム投稿タイプはdownloadとして登録されているため、テーマにsingle-download.phpファイル(または単一投稿階層の1番目の位置、ここでは説明しません)が含まれていない限り、WordPressはsingle.phpファイルを検索します。
これは、ブログ投稿が表示される方法に関係なく、EDDダウンロードも同じように表示されることを意味します。ブログ投稿にバイライン情報、投稿間ナビゲーション、またはその他のものが含まれている場合、それらはダウンロードにも表示されます。
多くのユーザーにとっては問題ありません。他のユーザーにとっては、製品表示に不要な情報が追加される可能性があります。あるいは、単に製品ページをブログ投稿と同じ方法で表示したくないユーザーもいるかもしれませんが、それは理解できます。
single-download.php
単一製品ページを単一ブログ投稿とは異なる方法で表示したいことをWordPressに伝えるには、アクティブなテーマのルートフォルダにsingle-download.phpファイルを作成して、単一投稿テンプレート階層を利用する必要があります(子テーマを使用している場合は、子テーマを意味します)。
このファイルがアクティブなテーマのルートフォルダに配置されると、フロントエンドの製品ページを表示する際に、ブログ投稿テンプレートではなく、ダウンロード固有のテンプレートが呼び出されます。その時点で、single-download.phpテンプレートを自由にカスタマイズできます。
single-download.phpテンプレートを作成するための非常に役立つヒントを以下に示します。
テーマ開発者で、すでに何をしているかを知っている場合を除き、最初のsingle-download.phpファイルを作成する最良の方法は、テーマのsingle.phpファイルを複製し、その複製をsingle-download.phpに名前変更することです。その時点で、製品ページの表示に何も変更はありません。ただし、新しいテンプレートファイルを自由に編集でき、製品ページにのみ影響します。
子テーマを使用している場合、親テーマのシングル投稿テンプレートを子テーマのルートフォルダにコピーする必要があることを意味します。
singular.php
ここでは少し複雑になります。singular.phpファイルは比較的新しく、single.phpファイルほど広く使用されていませんが、依然として人気があります。前述のように、WordPressにはすでにいくつかの投稿タイプが組み込まれており、カスタム投稿タイプの作成もサポートしています。これらの投稿タイプの*すべて*がシングルとして考慮されます。
これは、テーマにsingle.phpファイルやpage.phpファイル(WordPressのページを表示するために使用されるテンプレート)を含める必要がないことを意味します。singular.phpファイルが存在し、より具体的なテンプレートが利用できない場合、WordPressはすべての投稿タイプでそれを使用します。
言うまでもなく、このテンプレートファイルでは条件付きロジックを使用する必要があることがよくあります。つまり、次のようになります。
アクセスされたURLがページの場合、このコードを使用してページを表示します。アクセスされたURLが投稿の場合、そのコードを使用して投稿を表示します。
これらすべてが1つのテンプレートファイル内で発生します。投稿とページのみのサイトでは、これは簡単です。カスタム投稿タイプを導入すると、テーマ開発者がダウンロードカスタム投稿タイプのために条件を作成しなかった場合(つまり、テーマがEDDを考慮して作成されなかった場合)、これは複雑になる可能性があります。
ここではテーマの構築方法の詳細に入る場所ではありませんが、このシナリオでも、製品テンプレートのsingle.phpをオーバーライドする場合と同じことが言えます。singular.phpファイルを使用して、single-download.phpファイルを作成(複製を通じて)できます。ここでの唯一の違いは、製品で使用するためにファイルを変更するには、このファイル内のコードをよりよく理解する必要があることです。
シングル製品テンプレートのまとめ
これはWordPressテーマガイドを意図したものではありません。代わりに、EDDがWordPressとどのように連携するかを示し、シングル製品テンプレートを使用して製品ページを表示できるようにすることが目的です。
WordPressテーマ開発者でない場合、この作業は経験豊富な人に外部委託することを検討してもよいでしょう。必要なファイルの作成は、そのステップの1つにすぎません。ファイル内のコードの作成(または編集)は、HTMLとPHPの経験、または少なくともそれらに精通している必要がある、まったく別のタスクです。

