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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

2回答

2312閲覧

自作テンプレートのWordpress のSingle.phpで別の記事が表示される

yamaoka

総合スコア27

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2017/06/15 06:26

編集2017/06/15 09:37

自作のWordpressテンプレートを作っています
index.phpを作り終わり、投稿したコンテンツの一覧を表示できるようになったのでそこから各コンテンツページへいけるようにしたいとおもいsingle.phpを作りました

しかし、いざ飛んでみると別の投稿記事の内容が表示されてしまいます

個別ページのコードはこのようになっています

<div id="contents-list"> <!-- page-contents --> <div id="page-main-content-<?php the_ID(); ?>"<?php post_class(); ?>> <div class="page-content"> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div>

コンテンツ一覧はこのようになっています

<div id="contents-list"> <?php query_posts('posts_per_page=4'); ?> <?php if(have_posts()):while(have_posts()):the_post(); ?> <div class="post"> <a href="<?php the_permalink(); ?>"><div class="post-img"><?php the_post_thumbnail(array(210, 155)); ?></div></a> <div class="post-text"> <a href="<?php the_permalink(); ?>"> <h3><?php the_title(); ?></h3> <p><?php the_excerpt();?></p> </a> </div><!--class="post-text" --> </div><!--class="post" --> <?php endwhile;endif; ?>

コンテンツ一覧から選択した記事を記事の個別ページで表示させるためにこのコードをどのように改変したらよいでしょうか?

テンプレート自作したことのある方ご助言いただけないでしょうか?

single.phpのコードすべてです

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>simple</title> <link rel="stylesheet" href="<?php bloginfo('template_directory');?>/css/page.css" media="screen" /> <link href="http://fonts.googleapis.com/css?family=Josefin+Sans:400,600,700" rel="stylesheet"> <!--ビューボードの設置--> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!-- Header --> <div id="header" class="header"> <div id="logo"> <h3 href="#" class="top-name"><span>simple media</span></h3> </div> </div> <div id="container"> <!-- Right Navi --> <?php get_sidebar(); ?> <!-- page-contents --> <div id="page-main-content"> <div class="page-content"> <?php if ( have_posts() ) : ?> <h2><?php the_title(); ?></h2> <?php the_post_thumbnail(); ?> <?php the_content(); ?> <?php endif; ?> </div> <!--AD挿入場所--> <div class="adsence"> <div class="page-right-ad"></div> <div class="page-left-ad"></div> </div> <!--おすすめ記事--> <div id="recommended-content"> <h2>おすすめ記事</h2> <div class="reco-content"> <a href="#"> <img src="image/girl.jpg" alt="girl" /> <p class="date">2017.05.05</p> <h3 class="title">おすすめ記事コンテンツ</h3> </a> </a> </div> <div class="reco-content"> <a href="#"> <img src="image/girl.jpg" alt="girl" /> <p class="date">2017.05.05</p> <h3 class="title">おすすめ記事コンテンツ</h3> </a> </div> <div class="reco-content"> <a href="#"> <img src="image/girl.jpg" alt="girl" /> <p class="date">2017.05.05</p> <h3 class="title">おすすめ記事コンテンツ</h3> </a> </div> <div class="reco-content"> <a href="#"> <img src="image/girl.jpg" alt="girl" /> <p class="date">2017.05.05</p> <h3 class="title">おすすめ記事コンテンツ</h3> </a> </div> <div class="reco-content"> <a href="#"> <img src="image/girl.jpg" alt="girl" /> <p class="date">2017.05.05</p> <h3 class="title">おすすめ記事コンテンツ</h3> </a> </div> </div> <!--SNS--> <div id="share"> <ul> <!-- Twitter --> <li class="share-twitter"> <a href="http://twitter.com/home?status=<?php echo urlencode(the_title_attribute('echo=0')); ?>%20<?php the_permalink(); ?>%20by%20" target="_blank">Twitter</a> </li> <!-- Facebook --> <li class="share-facebook"> <a href="https://www.facebook.com/sharer/sharer.php?u=<?php the_permalink(); ?>" target="_blank">Facebook</a> </li> <!-- Google+ --> <li class="share-google"> <a href="https://plus.google.com/share?url=<?php the_permalink(); ?>" target="_blank">Google+</a> </li> <!-- はてなブックマーク --> <li class="share-hatena"> <a href="http://b.hatena.ne.jp/add?mode=confirm&url=<?php the_permalink(); ?>&title=<?php the_title();?>" target="_blank">はてブ</a> </li> <!-- LINE --> <li class="share-line"> <a href="http://line.me/R/msg/text/?<?php the_title(); ?>%0D%0A<?php the_permalink(); ?>">LINE</a> </li> </ul> </div> </div> </div> <?php get_footer(); ?>

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koji9412

2017/06/15 07:09

コンテンツ一覧の段階でURLが間違っているのか、飛んだ先の個別ページにおいて、URLはあっているが内容が違うのどちらの現象ですか?
yamaoka

2017/06/15 08:19

後者の飛んだ先の個別ページにおいて、URLはあっているが内容が違う、という現象が起きています
退会済みユーザー

退会済みユーザー

2017/06/15 09:30

single.phpのコードはこれが全てですか。
guest

回答2

0

globalのクエリを書き換えるquery_posts()使用は非推奨です
使った場合はwp_reset_query()でページのクエリに戻し
かつwp_reset_postdata()でglobalの$postも元に戻す
ということをしなくてはなりません

面倒なのでページ内にページ内容以外のループをしたいときは
get_posts()で投稿データの配列を取得してforeachで回すとかします

投稿2017/06/20 01:49

KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamaoka

2017/06/20 03:04

ご指摘ありがとうございます。getに直しておきました
guest

0

single.phpのコードにthe_post()が足りていないのではないでしょうか。

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/the_post

投稿2017/06/15 10:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamaoka

2017/06/20 01:09

<?php query_posts('posts_per_page=1'); ?> <?php if(have_posts()):while(have_posts()):the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <h2><?php the_title(); ?></h2> <?php the_post_thumbnail(); ?> <?php the_content(); ?> </div> <?php endwhile;endif; ?> というような書き方にしても同じ現象が起きてしまいます。 この書き方も書き方自体に問題がありますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問