カテゴリ別、タグ別、日付別、投稿者別のリストを含む、私のブログ用の詳細なアーカイブページを作成するための、カスタムの「アーカイブ」テンプレートを作成することを計画していました。静的リンクを使用するのではなく、WordPress内で特定のテンプレートファイルへのリンクを取得する方法はありますか。ページのURLに関係なくリンクを機能させたいのですが、可能ですか。
これは "Archive"ページテンプレートを使って最初のページのURIを印刷する関数です。テンプレートの名前はtemplate-archive.phpです(archive.phpという名前は付けず、テンプレート階層をハイジャックしないでください)。これをfunctions.phpにドロップしてテンプレートで呼び出すことも、テンプレートファイルで直接関数内のコードを使用することもできます。
function wpse25797_the_archives_link() {
$archive_page = get_pages(
array(
'meta_key' => '_wp_page_template',
'meta_value' => 'template-archive.php'
)
);
$archive_id = $showcase_page[0]->ID;
echo get_permalink( $archive_id );
}
アーカイブの内容によって異なります。テンプレート階層を見てください。
http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
ご覧のとおり、アーカイブにはさまざまな種類があります。分類、カテゴリ、タグ、作成者、日付、投稿。 'archive'クエリで特定の種類のテンプレートが見つからない場合、WordPressはデフォルトの汎用の 'archive.php'テンプレートを使用します。それでも見つからない場合は、デフォルトの 'index.php'になります。
いくつかの種類のアーカイブを組み合わせた一般的なアーカイブページを作成しようとしている場合は、理論的には階層内の任意の場所でそれを実行できます。そこにはどのような種類のデータが表示されるのでしょうか(あなたの猫に関連するのか、それとも中心的な一般的なものなのか)。
たとえば、category.phpという名前のテンプレートを作成した場合、特定のカテゴリ用に特定のテンプレートを作成しない限り、そのテンプレートを使用してカテゴリ要求が表示されます。あなたがcategory.phpとcategory-myslug.phpを持っていれば、 'myslug'カテゴリはその特別なテンプレートと一緒に現れるでしょうが、他の全ては一般的なcategory.phpテンプレートを使って現れるでしょう。
これをすべて家に持って帰るために、あなたのURLが http://example.com/category/cat1 であるならば、それは同じテンプレートを使うように作られることができます http://example.com/category/cat2 は、テーマ内にどのテンプレートが存在し、どのテンプレートが存在するかに基づいています。
同じロジックが、タグテンプレート、ページテンプレート、日付ベースのアーカイブ、カスタム分類テンプレート、およびカスタム投稿タイプテンプレートにも適用されます。さらに、単一のテンプレートをすべてのアーカイブに適用する場合は、archive.phpテンプレートを作成して、テーマにもっと具体的なテンプレートがないことを確認してください。
お役に立てれば。