サポート » 使い方全般 » カテゴリーページに固定ページの内容を表示したい

  • いつもお世話になっております。

    標題の件ですがご教示戴けましたら幸いです。

    ・固定ページスラッグ(osaka,kobe,kyoto)
    ・カテゴリースラッグ(osaka,kobe,kyoto)

    を同一にしている状態です。
    category.phpにカテゴリースラッグと同様の固定ページスラッグの内容を表示したいのですが、カテゴリースラッグは

    <?php
    	$cat = get_the_category();
    	$cat = $cat[0];
    ?>
    <?php echo $cat->category_nicename; ?>

    で取得できたのですが、このカテゴリースラッグを元にして固定ページの情報を取得したいと考えております。(例:カテゴリースラッグosakaの場合category.phpのページに固定ページスラッグosakaの情報(タイトル、記事、カスタムフィールドテンプレートの内容)を取得)

    上記の内容を取得する方法はございますでしょうか、ご教示戴けますよう何卒宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • テンプレートタグ/get_posts#スラッグをもとに投稿を取得する – Codex 日本語版が参考になると思います。

    固定ページですから、’name’ではなく’pagename’に指定するといいです。
    関数リファレンス/WP_Query#投稿&固定ページパラメータ – Codex 日本語版

    投稿タイプも’post’ではなく’page’に変更する必要があります。

    トピック投稿者 inon

    (@inon)

    popup様

    ご回答いただき本当に有難うございます。

    <?php
    $the_slug = 'my_slug';
    $args=array(
      'pagename' => $the_slug,
      'post_type' => 'page',
      'post_status' => 'publish',
      'showposts' => 1
    );
    $my_posts = get_posts($args);
    if( $my_posts ) {
    echo 'ID on the first post found '.$my_posts[0]->ID;
    }
    ?>
    
    <?php if(have_posts()):
    while(have_posts()): the_post();?>
    <?php the_title();?>
    <?php the_content(); ?>
    <?php endwhile; endif;?>

    上記をcategory.phpに記入してみたのですが、categoryに属する投稿(post)が表示されてしまいました。

    categoryスラッグの(osaka)と同様の固定ページスラッグ(osaka)の内容を表示する為にはこの表記では不可能なのでしょうか。

    知識不足で大変恐縮ではございますがご指導頂けましたら幸いです。

    ‘get_posts()’の使い方はドキュメントテンプレートタグ/get_posts – Codex 日本語版に書いてあります。
    該当箇所だけ見て分からなければ、そのページだけでも全てに目を通してください。

    <?php if(have_posts()):
    while(have_posts()): the_post();?>

    上記の記述だとメインクエリのままで投稿データをテンプレートタグで扱う為の準備も行われていません。
    ‘get_posts()’で取得した投稿は配列になっているので、foreach()でループ処理する必要があります。

    Function Reference/setup postdata – Codex 英語版
    テンプレートファイルで使う場合は、’global $post;’は必要ありません。

    Function Reference/wp reset postdata – Codex 英語版

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カテゴリーページに固定ページの内容を表示したい」には新たに返信することはできません。