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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Q&A

解決済

1回答

6063閲覧

wordpressのアーカイブページ内で同記事が何度もループされてしまう

ms2

総合スコア9

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

0グッド

0クリップ

投稿2018/08/22 20:59

編集2018/08/23 02:12

前提・実現したいこと

初めてのご質問です。
どうぞよろしくお願い致します。
wordpressでオリジナルテーマをゼロから作成していまして、
テンプレートのsidebar.phpからcategory.phpへカテゴリー別のアカーイブを
ページ一覧に表示させたいです。
wordpressの知識は2年目ですので、
phpの書き方は、まったくの素人です。

発生している問題・エラーメッセージ

sidebarからcategory.phpファイルに投稿数を設定して一覧を表示させたいのですが、
正常に各カテゴリー一覧へとリンクはできているのですが、
表示後、同じ記事が何度もループされる現象になっています。

例えば…

  • 今日の出来事

  • 昨日の出来事

  • 一昨日の出来事

  • 今日の出来事

  • 昨日の出来事

  • 一昨日の出来事

  • 今日の出来事

  • 昨日の出来事

  • 一昨日の出来事

…………

という具合に、ループしたい部分が何度も繰り返し表示されます。

エラーメッセージ
特になし

該当のソースコード

php

1<?php get_header(); ?> 2<section> 3 4<h2> 5<a href="http://www.example.com/news.html"><?php single_cat_title(); ?> Cat List</a> 6</h2> 7 8<?php $categories = get_categories(); 9foreach($categories as $category): ?> 10 11<article> 12<?php if (have_posts()) : while(have_posts()) : the_post(); ?> 13 14<div> 15<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> 16<time datetime="<?php echo get_the_date( DATE_W3C ); ?>"><?php echo get_the_date(); ?></time> 17<p ><?php the_category(', '); ?></p> 18</div> 19 20<dvi> 21<p><?php the_content('Read more'); ?></p> 22</dvi> 23 24<?php endwhile; ?> 25<?php else: ?> 26<?php endif; ?> 27 28</article> 29 30<?php endforeach; ?> 31 32</section> 33 34<div> 35<?php wp_pagenavi(); ?> 36</div> 37 38<?php get_sidebar(); ?> 39<?php get_footer(); ?>40

試したこと

wordpressの管理ページで、表示投稿数などを変えてみたりしてみました。
現在、投稿表示数「3」に設定中です。

補足情報(FW/ツールのバージョンなど)

読み込みファイル先は「category.php」です。
プラグインは「Page Navi」を使用しています。

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

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

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

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

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

ms2

2018/08/23 01:20

失礼しました。Markdownのコードブロックで囲んでみました。
yoorwm

2018/08/23 01:25

他人に出す手紙を見直したりする習慣は無いのでしょうか?それと、一部見られるソースからphpのアプリケーションに対する質問かと想像しますが、「ループ」というアプリケーションなのでしょうか?聞いた事が無いので、そちらへの説明記事やソースへのリンクも欲しい所です。
dit.

2018/08/23 01:34

コードブロックになってません。コード部分を選択して、<code>ボタンを押してください。もしくは行の前後を```で囲ってください。それぞれ別のコードブロックにしたい場合はコードの間にも改行が必要です。パソコンからの編集であればプレビューが出ていると思いますので、確認しながら編集してください。
dit.

2018/08/23 01:37

また、タグが適切ではないと思います。WordPressであれば、WordPressタグをつけてください。
ms2

2018/08/23 01:50

再度、情報修正しました。
ms2

2018/08/23 01:50

すみません。。。
dit.

2018/08/23 02:00

登録したばかりでteratailを使いこなせなくても仕方ありません。知らないことを責めているわけではなく、「こうした方が回答を得られやすいですよ」とアドバイスをしているだけです。文字面だけだときつく感じるかもしれませんが、あまり気にしないでください。…で、再度のお願いです。teratailではコードを見やすくするためのしくみがあります。コードに説明を入れてほしかったわけではなく、「この部分がコードだ」とわかるようにしてほしいのです。「コードが書いてある部分をドラックして選択し、<code>と書いてあるボタンを押してください。」```という記号が入ります。(「ここに言語を入力」という言葉をphpかhtmlに書き換えてください)
ms2

2018/08/23 02:01

了解しました。何度もすみません、再度情報修正してみます。ありがとうございます!
guest

回答1

0

ベストアンサー

php

1<?php $categories = get_categories(); 2foreach($categories as $category): ?>

php

1<?php endforeach; ?>

を削除してみてください。
カテゴリーの数だけループしていると思われます。

投稿2018/08/23 02:15

dit.

総合スコア3235

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

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

ms2

2018/08/23 02:18

dit.さん さっそくありがとうございます! 試してみます。。。
ms2

2018/08/23 02:39

dit.さま ご指示の通り、さっそく試してみました。 無事、ループも希望通りに表示されるようになりました! 本当にありがとうございました!! ループの関数を深く理解をせずに、手当たり次第コピー&ペーストし、 ダメだったら削除の繰り返しで、重複などNG部分が見えなくなった部分がありました。 かなりの反省です。。。。 投稿数なども変更しても問題なく表示されていました。 こういう質問などができるサイトがあり、本当に助かりました! もっともっと精進しなくてはですね。 感謝いたします。
ms2

2018/08/23 02:44

みなさま 質問の仕方など、伝え方が分かりにくかったことを深くお詫びいたします。 本当にすみませんでした。
dit.

2018/08/23 03:09

解決できたようで何よりです。 もし自由に検索できる環境であれば、category.phpに限らず「希望のテーマファイル名.php 作り方」とかでいくつかのサイトを読んでみて、自分が書いたコードとの違いはどこなのか、なぜそのコードが不要(必要)なのかを考えていくといいと思います。 質問の仕方に関しては、「回答者は質問者の提示した情報しか知らない」ことを念頭に置いていただければ。 時間があれば、https://teratail.com/help/question-tipsを読んでみてください。
ms2

2018/08/23 03:14

dt.さま いろいろご教授、ありがとうございます! さっそく検索して、知識を深めたいと思います。 それにしても「wordpress」は複雑すぎて?仕組みを理解するのに時間がかかりそうですが、 少しづつ深めていきたいと思います。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問