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

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

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

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

PHP

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

Q&A

解決済

1回答

1927閲覧

WordPressでの複数のカテゴリが設定されている投稿のカテゴリ別表示

i-k-u

総合スコア9

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/09/04 01:26

編集2018/09/07 07:35

前提・実現したいこと

WordPressで、複数のカテゴリが設定されている投稿のカテゴリ別表示をしたいです。

例)
カテゴリaaaとbbbの二つが設定されている記事をcategory-aaa.phpとcategory-bbb.phpのどちらでも表示
現状はcategory-aaa.phpでのみ表示されます。

一つ目に設定されているカテゴリのみによって条件分岐されてしまうため、二つ目以降のカテゴリも条件に含みたいところです。

一通りググってはみたのですが、解決できませんでした。

この条件分岐では二つ目以降のカテゴリが判断されていないため、
他の解決できる記述があれば教えていただけませんか。

該当のソースコード

ループの箇所
aaa = カテゴリID 1
bbb = カテゴリID 2

category

1<?php query_posts('cat=1 & showposts=-1'); ?> 2 <?php if ( have_posts() ): while ( have_posts() ) : the_post(); ?> 3 <!-- ループ開始 --> 4 5 aaaとbbbが設定された記事が表示される 6 7 <!-- ループ終了 --> 8 <?php endwhile; else : ?> 9 <p>記事がありませんでした。</p> 10 <?php endif; ?>

category

1<?php query_posts('cat=2 & showposts=-1'); ?> 2 <?php if ( have_posts() ): while ( have_posts() ) : the_post(); ?> 3 <!-- ループ開始 --> 4 5 何も表示されない 6 7 <!-- ループ終了 --> 8 <?php endwhile; else : ?> 9 <p>記事がありませんでした。</p> 10 <?php endif; ?>

補足情報

自作テーマを作成中にハマっています。

18/09/07追記
query_postsは非推奨とのことでしたので、get_postsに書き換えましたが、引き続き同じ現象が起きています。

category

1<?php $posts = get_posts(array( 2 'posts_per_page' => -1, // 表示件数 3 'category' => '1' // カテゴリIDもしくはスラッグ名 4 )); 5 ?> 6 <?php if($posts): foreach($posts as $post): setup_postdata($post); ?> 7 <!-- ループ開始 --> 8 9 aaaとbbbが設定された記事が表示される 10 11 <!-- ループ終了 --> 12 <?php endforeach; else : ?> 13 <p>記事がありませんでした。</p> 14 <?php endif; ?>

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

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

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

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

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

guest

回答1

0

ベストアンサー

たんにquery_posts/get_postsの行を取り除いたら動きませんか?
archive.phpをコピーしてcategory-slug.php作っただけでも何の問題も無いはずですが……

投稿2018/09/11 09:47

perpouh

総合スコア299

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

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

i-k-u

2018/09/12 00:44

perpouhさん query_posts/get_postsの行を取り除いたら無事動きました。 category-"slug".phpが読み込まれている時点でカテゴリ別に表示してくれるんですね... 勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問