サポート » 使い方全般 » 固定ページの記事を表示するテンプレートタグについて

  • 解決済 GTK323

    (@gtk323)


    基礎的なことで恐縮ですが、標題の件でお尋ねします。
    現在、ブログのページと複数の静的固定ページで構成しているサイトを作っています。

    ダッシュボード>固定ページ>各ページの「ページを編集」の中にテキスト編集画面がありますが、その本文をサイトに表示する方法で引っかかってます。

    たとえば、<?php the_permalink(); ?>と<?php the_content(); ?>を使うと、
    (静的)各固定ページの場合は、そのページ編集画面に記載した本文が表示されるのですが、ブログページに限り、ページ編集画面の記述ではなく、各投稿の記事本文が表示されます。

    ブログページのサイトに投稿が表示されるのは問題ないのですが、それとは別のところに、ブログの「ページ編集」の本文も表示させようと思いつつ方法が分かりません。どのようなテンプレートタグあるいはパラメータを使えばよろしいでしょうか?

    (よく分からないままに、<?php the_permalink(); ?>の代わりに、ブログ本体のページのパーマリンクを直接記入してみましたが、やはり投稿記事のほうが出てしまい同じことでした。query_postsやget_posts あたりも試してみましたが違うようですね・・・)

    あと、直接関係ないかもしれませんが、トップページはブログのページではなく、他の固定ページを指定しています。
    テーマは独自に作成したものを使っています。

    解決方法のご教示、どうかよろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    よくサイト構造が理解できてないので間違っていたらもうしわけないのですが、

    HOME(固定ページ)
      |____ 固定ページ01
      |____ 固定ページ02
      |____ 固定ページ03
      |____ 固定ページ04
      |____ ブログ投稿一覧+固定ページ05 を両方表示

    ってことでしょうか??
    で、「ブログ投稿一覧+固定ページ05 を両方表示」ができないってことでいいですかね?

    つまり、

    ■固定ページ05タイトル■

    ここは固定ページ05の入力内容を表示。ここは固定ページ05の入力内容を表示。ここは固定ページ05の入力内容を表示。ここは固定ページ05の入力内容を表示。ここは固定ページ05の入力内容を表示。ここは固定05ページの入力内容を表示。

    ■ブログ■

    2011-09-01 ブログタイトル
     ブログ本文。ブログ本文。ブログ本文。ブログ本文。ブログ本文。
     ブログ本文。ブログ本文。ブログ本文。ブログ本文。ブログ本文。

    ——

    2011-08-31 ブログタイトル
     ブログ本文。ブログ本文。ブログ本文。ブログ本文。ブログ本文。
     ブログ本文。ブログ本文。ブログ本文。ブログ本文。ブログ本文。

    以下略

    ↑こうしたいってことでしょうか?

    ブログ投稿一覧+固定ページ内容 を両方表示する場合、
    ループが2つになります。
    やり方はいろいろあると思いますが、私なら固定ページテンプレートを新しく作る方法をとりますね。

    やりたいことが間違っているといけないので、↑を確認していただいて、実装方法はそれからかきます。

    モデレーター jim912

    (@jim912)

    GTK323さん、こんにちは

    「ブログページ」とおっしゃられているのは、[設定] > [表示設定] > [フロントページの表示]で設定される「投稿ページ」の事を指しているという理解でよいでしょうか。

    これを踏まえて、投稿ページに最新の投稿と合わせて、投稿ページの入力欄に入力したものを表示したいという前提で回答させていただきます。

    テンプレートタグでは、直接投稿ページの入力内容を表示することはできないため、独自に取得してやらなければなりません。

    1つの記事を取得するには、get_post を使いますが、投稿ページのIDをパラメータとして指定する必要があります。

    投稿ページのIDを取得するには、get_option( 'page_for_posts' );を使います。

    投稿ページが取得できたら、setup_postdataをかけておきましょう。

    トピック投稿者 GTK323

    (@gtk323)

    ご回答ありがとうございます。基本的にphpの理論なども付け焼刃的に並行して勉強しながらやってますので、知識・理解不足で困っております。。。

    >mypacecreatorさん
    説明が分かりにくく申し訳ないです。
    サイト構造は、まさにおっしゃる通りです。固定ページ05の中に、ブログ投稿と、ページそのものの投稿を同時に表示したいということです。

    固定ページテンプレートを別に用意する方法も考えましたが、その固定ページの記入欄の本文が表示された状態で、同時にブログ投稿記事も呼び出すタグも使うことになり、結局うまくいきませんでした。
    偶然にもHPを拝見させていただき、トップページに新着のブログ投稿の一覧を表示することはできたので、あとはここにcontentである投稿内容を合わせて表示させればいい、というのは分かるのですが、そこから先でまた躓いてしまうのがビギナーの悲しさです・・・

    >jim912さん

    「ブログページ」とおっしゃられているのは、[設定] > [表示設定] > [フロントページの表示]で設定される「投稿ページ」の事を指しているという理解でよいでしょうか。

    まさにそうです。いわゆるブログ本体とでもいうか、ブログ投稿記事がアップされる「投稿ページ」です。これとは別に、「フロントページ」については別の固定ページを指定しています。

    教えていただいた 

    get_option( ‘page_for_posts’ );

    ですが、これはループを考えず単独で使えるとの理解でよろしいでしょうか?
    つまり、「投稿ページ」の「ページ記事本文」のほうは固定(というか単独で存在)ですので、リンクを張っておけばそのまま表示されるんですよね?

    <?php
    get_page_link( get_option(‘page_for_posts’) );
    ?>

    というのを使ってみたのですが、やり方が悪いのか何も表示されませんでした。
    パラメータを($page_for_posts)にしても同様で、(‘$page_for_posts’)にしてみたら、まっ白けになりました。
    page_for_post ですから、「投稿ページの中の記事」に関するリンクの取得だと思うのですが・・・関数の設定方法に誤りがあればご教示くだされば幸いです。

    どうぞよろしくお願いいたします。

    トピック投稿者 GTK323

    (@gtk323)

    たびたびすみません、もう少し具体的な記述を加えますと、

    HOME(固定ページ)
      |____ 固定ページ01
      |____ 固定ページ02
      |____ 固定ページ03
      |____ 固定ページ04
      |____ ブログ投稿一覧+固定ページ05 を両方表示

    この中の固定ページ05には、ブログ投稿(タイトル+本文)を数件表示します。
    さらにこのページに、カスタムヘッダーの機能を使って「今週の1枚」みたいに画像を表示させます。
    その画像の説明を、固定ページ05の記事入力欄に書き込んで、画像の下にでも表示させたい、というのが基本構想になっております。

    モデレーター jim912

    (@jim912)

    GTK323さん

    こんな感じです。

    <?php
    $page_for_posts = get_option( 'page_for_posts' );
    if ( $page_for_posts ) {
    	$post = get_post( $page_for_posts );
    	setup_postdata( $post );
    	the_content( $post );
    }
    ?>

    トピック投稿者 GTK323

    (@gtk323)

    jim912さん

    できました!
    本当は自分で考えないといけないんですが、パラメーターと$の入れ方とか分からず、コピペさせていただきました。ありがとうございました。
    ‘page_for_posts’ で指定して、$page_for_posts で実数値もしくは文章を出してくるということですね。
    つぎは、サムネイル画像の表示にむけて奮闘したいと思います。

    あらためて感謝申しあげます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「固定ページの記事を表示するテンプレートタグについて」には新たに返信することはできません。