web-dev-qa-db-ja.com

投稿フォーマットテンプレート

Wordpressが投稿フォーマットのアーカイブページを表示するために使用するテンプレートを知りたいですか。指定されたテンプレートファイルがない場合に使用される親テンプレートファイルと、すべての投稿フォーマットテンプレートをカバーする指定されたテンプレートファイルとは何ですか。ロードされたページがポストフォーマットアーカイブページであるかどうかを知る方法もありますか?

2
vlad

投稿フォーマット は「メタ」コンテンツに従って投稿をカスタマイズするために使用されますが、それらは常に投稿であり、投稿としてアーカイブページとカテゴリページに表示されます。 。

指定されたテンプレートファイルがない場合に使用される親テンプレートファイルと、すべての投稿フォーマットテンプレートをカバーする指定されたテンプレートファイルとは何ですか。

WordPress Codex - テンプレート階層 セクションをご覧ください。

Wordpressが投稿フォーマットのアーカイブページを表示するために使用するテンプレートを知りたいですか。

アーカイブ(年、月、日による投稿)ページは、通常archive.phpテンプレートの上に表示されます。カテゴリアーカイブページはcategory.phpテンプレートの上にあります。

ロードされたページがポストフォーマットアーカイブページであるかどうかを知る方法もありますか?

はいあります。 is_archive();コンディショナルタグ を使うことができます。

UPDATE

一つの投稿フォーマットからすべての投稿を表示する方法はありますか?例えば、archive.phpテンプレートを使用して、 'image'または 'quote'の投稿タイプですべての投稿を表示しますか?

はいあります。あなたは pre_get_posts アクションフックであなたのarchive.phpの中に特定のフォーマットの投稿を表示することができます。 WP_Query の引数を見れば、tax_queryが見つかります。これは分類パラメーターの配列です。

使用例

//in functions.php
add_action( 'pre_get_posts', 'wpse_show_posts_by_format' );
function wpse_show_posts_by_format($query){
  //We are not in admin panel and this is the main query
  if( !$query->is_admin && $query->is_main_query() ){
    //We are in an archive page
    if( $query->is_archive() ){
      $taxquery = array(
        array(
          'taxonomy' => 'post_format',
          'field'    => 'slug',
          'terms'    => array( 'post-format-quote', 'post-format-image' )
        )
      );
    //Now adding | updating only to main query 'tax_query' var
    $query->set( 'tax_query', $taxquery );
    }
  }
}

それが役に立てば幸い!

3
iEmanuele

投稿形式は分類法です。

投稿タイプでもメタでもありません。

カテゴリ、タグ、カスタム分類法、および投稿形式との違いは、投稿形式の用語を(現時点では) 9用語 のセットにできることです。

投稿フォーマット 'Standard'は存在しないことに注意してください。投稿を標準投稿フォーマットに設定することは、投稿フォーマットを設定しないことを意味します。

そのため、任意の投稿形式は存在できませんが、存在するものは分類用語です。

この分類法のスラッグはpost-format-{$format}のようなものです。 post-format-quote

指定されたテンプレートファイルがない場合に使用される親テンプレートファイルと、すべての投稿フォーマットテンプレートをカバーする指定されたテンプレートファイルとは何ですか。

それらが分類学用語になったら、分類学に関して Template Hierarchy を見なければなりません:

そのため、taxonomy-post_format-{$slug}.php(例:taxonomy-post_format-post-format-quote.php)は、wpが探す最初のテンプレートです。

その後、taxonomy-post_format.phptaxonomy.phpおよびarchive.phpよりもindex.php(これは12のテーマに含まれます)。

ロードされたページがポストフォーマットアーカイブページであるかどうかを知る方法もありますか?

これも分類法です。したがって、is_tax()またはis_tax('post_format')is_tax('post_format', 'post-format-quote')はすべてうまくいきます。

私は今あなたが投稿形式のアーカイブを要求するURLは何ですかを尋ねているのでしょうか?

かなりパーマリンクが有効になっていないときは、リンクはhttp://example.com/?post_format=quoteのようなものになります(http://example.com/?post_format=post-format-quoteも機能します)。

かなりパーマリンクが有効になっている場合、デフォルトでは、http://example.com/type/quoteのようになります。 (http://example.com/type/post-format-quote/も動作します)

Url http://example.com/type/(型が指定されていない)は404エラーになることに注意してください。

投稿フォーマットの書き換えベースの 'タイプ'はpost_format_rewrite_baseフィルタで変更できるので、 'デフォルトで'と言いました。

ただし、投稿形式アーカイブへの正しいリンクを取得するには、 get_post_format_link 関数を使用することができます。

2
gmazzap