サポート » 使い方全般 » category.php内へカスタム投稿表示

  • 解決済 AkitoiRo

    (@dona0513)


    お世話になっております。

    WPのcategory.phpの現在のカテゴリのスラッグを取得し
    同じpostnameのカスタム投稿記事を表示したいです。

    やりたい事
    例:
    表示テンプレート
    都道府県[固定ページテンプレート]>北海道(など)[category.php]>札幌市(など)[category.php]>以下のカテゴリも有[category.php]

    表示内容
    北海道(など)の場合
    category.php
    北海道などの都道府県の共通表示デザイン
    通常投稿の北海道以下の投稿記事ループ表示
    【都道府県のカスタム投稿を表示中の都道府県と同じ物を表示】

    札幌市(など)の場合
    category.php
    札幌市などの市区町村の共通表示デザイン
    通常投稿の市区町村の投稿記事ループ表示
    【市区町村のカスタム投稿を表示中の市区町村と同じ物を表示】

    ループ表示までは問題なく出来るのですが、プログラムが書けず
    【カテゴリページにてカテゴリ名と同じカスタム投稿の表示】
    をする方法がわかりません。

    お手数ですが教えていただけると幸いです。
    宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    同じpostnameのカスタム投稿記事を表示したいです。

    postname とはスラッグのことでいいのでしょうか?
    とりあえずスラッグのことだとして話を進めます。

    カテゴリーの場合、グローバル変数 $cat にカテゴリー ID がセットされています。
    このカテゴリー ID で、get_category 関数によりカテゴリーの詳細データを取得することができます。

    $category = get_category( $cat );

    上記の場合、カテゴリーのスラッグは $category->slug で取得できます。

    あとは、Codex の get_posts テンプレート タグ ページの「スラッグをもとに投稿を取得する」セッションが参考になると思います。

    例)

    $category = get_category( $cat );
    $my_posts = get_posts( array(
    	'name' => $category->slug,
    	'post_type' => 'カスタム投稿',
    	'post_status' => 'publish',
    	'posts_per_page' => 1
    ) );
    foreach ( $my_posts as $post ) {
    	setup_postdata( $post );
    	the_content();
    }
    wp_reset_postdata();
    • この返信は2年、 11ヶ月前にishitakaが編集しました。

    テンプレート階層
    カスタム分類:都道府県
    カスタム分類:市区町村
    を作って、それぞれのテンプレートを作る。
    site_url/?都道府県=北海道が呼ばれたら都道府県のテンプレート
    site_url/?市区町村=札幌市が呼ばれたら市区町村のテンプレートが呼ばれる。
    カスタム投稿も含めて一覧させたい投稿記事には、
    都道府県、市区町村それぞれを設定する。

    お二方まとめての返信になってしまい申し訳ありません。

    無事表示できました。

    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「category.php内へカスタム投稿表示」には新たに返信することはできません。