質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

Wordpressで固定ページに投稿記事を表示

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 6,339

sumomomo

score 15

Wordpressで「blog」という名前の固定ページを作成し、
「blog.php」というテンプレートを使って編集しています。

投稿した記事の内容やタイトルをこの「blog.php」で出力したいのですが
固定ページ「blog」自体の内容やタイトルが表示されてしまいます。

投稿した記事からデータを持ってくるにはどうしたらよいでしょうか。

表示設定の投稿ページには何も選択していません。
(blogを選択すると真っ白になってしまうため)

<?php
/*
Template Name: blog
*/
?>
<html>
<head>
<link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/css/style.css"> <!-- CSS Stylesheet -->
</head>
<body>          
   <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
</body>
</html>

よろしくお願いいたします。

[追記]
kei様
コメントありがとうございます。

>お使いのテーマ名を追記ください。
テーマは自分で作成しています。

>また「固定ページ「blog」自体の内容やタイトルが表示されてしまいます。」とは
>固定ページテンプレートで表示されるという意味でしょうか。

フロントページから
<?php echo esc_url( get_permalink( get_page_by_title( 'blog' ) ) ); ?>
で自分でカスタムした「blog」という名前の固定ページに飛ぶようにしています。

その時の<?php the_title(); ?>が、
投稿したタイトルではなく、作成した固定ページのタイトルになってしまいます。

よろしくお願いいたします。

[追記2]
kei様
再度コメントありがとうございます。

>投稿とページ、サイト全体のURL構成をどのようにされたいのかも追記いただけませんか?

<作りたいページ>
・フロントページ
<a href="<?php echo esc_url( get_permalink( get_page_by_title( 'blog' ) ) ); ?>">BLOG</a>
でblog.phpに飛ぶようにしています。これは成功しています。

・投稿ページ(固定ページで作成し、blog.phpをテンプレートとして使い編集)
このページに投稿一覧に投稿した内容やタイトルを表示したいのです。
が、<?php the_title(); ?>等を使うとblog.phpの固定ページのタイトルが表示されてしまいます。

<URL構成>
フロントページ(http://localhost:8888/wordpress/) → 投稿ページ(http://localhost:8888/wordpress/blog/)

分かりづらいところがありましたら、ご指摘いただけると幸いです。
すみませんが、よろしくお願いいたします。

[追記3]

Kei334様
>サイトを構成するページがこの先ずっと2ページのみという理解で問題ないですか?

現段階ではこの2ページですが追加予定です。
先ほどまで色々試していたら、やっと表示したい通りにできました。
Inspireしてくださり、ありがとうございました!

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/06/27 17:20

    お使いのテーマ名を追記ください。また「固定ページ「blog」自体の内容やタイトルが表示されてしまいます。」とは固定ページテンプレートで表示されるという意味でしょうか。

    キャンセル

  • kei344

    2016/06/27 17:23

    「真っ白になってしまう」場合、デバックモードで確認してください。⇒ http://mignonstyle.com/debug-mode/

    キャンセル

  • kei344

    2016/06/28 15:01

    すいませんが、投稿とページ、サイト全体のURL構成をどのようにされたいのかも追記いただけませんか?よろしくお願いします。

    キャンセル

  • kei344

    2016/06/28 16:23

    サイトを構成するページがこの先ずっと2ページのみという理解で問題ないですか?

    キャンセル

回答 2

check解決した方法

0

以下の方法で解決できました!!

<?php
$args = array( 'posts_per_page' => 3 );
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
  setup_postdata( $post ); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php the_content(); ?>
<?php endforeach; wp_reset_postdata(); ?>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

解決されたようですが、標準のWordPressでは下記の様な構成を取れません。

トップページ(home.php)「example.com/」
├ ブログ(固定ページ&投稿テンプレート)「example.com/blog/」
│ ├ 投稿1(投稿ページ)「example.com/blog/article1」
│ ├ 投稿2(投稿ページ)「example.com/blog/article2」
│ └ 投稿3(投稿ページ)「example.com/blog/article3」
└ 他の固定ページ

「ブログ」ページに書かれている「the_permalink();」がどこを指しているかはわかりませんが、上記のような構成にするのは難しいと思います。


「投稿の一覧ページ」を作る場合、カスタム投稿タイプを新たに作ることで対応することが多いです。

プラグイン「Custom Post Type UI」を使うと比較的簡単にアーカイブ(一覧ページ)付きの投稿タイプを作成できます。

たとえば、「blog」という名前のカスタム投稿タイプを作成し、「Has Archive」設定を True にすると、「example.com/blog/」で一覧が表示できます。(その表示に使われるテンプレートは「archive-blog.php」)

投稿ページは設定によりますが「example.com/blog/article1」のように出来ます。

【Custom Post Type UI — WordPress Plugins】
https://ja.wordpress.org/plugins/custom-post-type-ui/

【Custom Post Type UIの使い方[WordPress]】
http://kotori-blog.com/wordpress/custom_post_type_ui/

【プラグイン・Custom Post Type UIでのアーカイブページの表示設定】
http://www.firstsync.net/homepage/9098/


何が一番言いたいかというと、example.com/固定ページ/投稿ページ というURLには簡単には出来ないので他の方法を探ったほうが手早いですよ、ということです。

Rivernameさんのサイト構成が example.com/固定ページ/投稿ページ になりそうなのであれば、組み方自体を変えたほうが良いと思います。解決済なので、要らぬおせっかいの可能性が高いのですが、同じ問題を解決したくて検索してこられた方には伝えておきたいので、書かせていただきました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る