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

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

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

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

Q&A

解決済

1回答

267閲覧

【wordpress】固定ページのカテゴリ一覧からカテゴリを選択し、記事一覧を表示したい

abell

総合スコア12

WordPress

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

0グッド

0クリップ

投稿2019/05/21 17:02

初歩的な質問かもしれませんが、アドバイスいただけると幸いです。

親子関係のあるカテゴリで、以下のようなことをやりたいです。

  1. 固定ページ(categorylist.php)でリンク付きのカテゴリ一覧を表示
  2. 記事紹介ページ(home.php)で各記事にリンク付きのカテゴリを表示
  3. 1と2でカテゴリを選択すると、該当カテゴリで絞り込みされた記事一覧ページ(category.php)を表示

コードは以下です。

CategoryList

1<div> 2 <?php 3 $category_ids = array( '1', '2', '3' ); 4 $category_link = get_category_link( $category_id ); 5 foreach( $category_ids as $category_id ) { 6 ?> 7 <p> 8 <a href="<?php echo esc_url( $category_link ); ?>"><?php echo get_cat_name( $category_id ) ?></a> 9 </p> 10 <?php 11 } 12 ?> 13</div>

Home

1<ul> 2 <?php 3 global $post; 4 $myposts = get_posts( $args ); 5 foreach( $myposts as $post ) { 6 setup_postdata($post); 7 ?> 8 <li> 9 <a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 10 <br><span><?php the_category('/') ?></span> 11 </li> 12 <?php 13 } 14 wp_reset_postdata(); 15 ?> 16</ul>

Category

1<h2>Category:<?php $cat = get_the_category(); ?><?php $cat = $cat[0]; ?><?php echo get_cat_name($cat->term_id); ?></h2> 2 <?php 3 if ( have_posts() ) { 4 while ( have_posts() ){ 5 the_post(); 6 ?> 7 <article> 8 <p> 9 <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 10 </p> 11 </article> 12 <?php 13 } 14 } 15 ?>

上記コードで表示確認をすると、以下のような問題が起こります。

■categorylist.phpのカテゴリからcategory.phpに遷移すると、カテゴリと記事が空の状態になる
■home.phpの<?php the_category('/') ?>で表示されているカテゴリ(子/親)で、親カテゴリを選択した場合、子カテゴリの内容で絞り込まれた状態で表示される

home.phpの<?php the_category('/') ?>の子カテゴリを選択した場合のみ、category.phpで期待した画面が表示される、という状況です。

上記問題を直接解決できるやり方があれば大変ありがたいのですが
そもそもcategory.phpで表示できるのはthe_categoryで得られたカテゴリのみで、その他のカテゴリ関数で取得したリンクはcategory.phpではなく、他のページを使用するのでしょうか。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/05/24 03:27

マルチポストクズhttps://ja.wordpress.org/support/topic/%E5%9B%BA%E5%AE%9A%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E4%B8%80%E8%A6%A7%E3%81%8B%E3%82%89%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97/
abell

2019/05/24 04:18

以後気をつけます。
guest

回答1

0

ベストアンサー


逆じゃない?

php

1 $category_link = get_category_link( $category_id ); 2 foreach( $category_ids as $category_id ) { 3 45 6 foreach( $category_ids as $category_id ) { 7 $category_link = get_category_link( $category_id );

親カテゴリへのリンクを有効にしたければthe_categoryの第2引数にmultipleを指定

投稿2019/05/23 04:53

KazuhiroHatano

総合スコア7804

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

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

abell

2019/05/23 06:38

できました!順番が違っていたのですね…。お恥ずかしい限りです。 本当にありがとうございます。 重ね重ねになりますが、もう1点お聞きしても良いでしょうか? category.phpでタイトル部分に「Category : ○○」といった表記をしたいのですが、質問文に書いてあるコードだと親カテゴリを選択した場合でも、子カテゴリ名が表示されます。 子カテゴリを選択した場合は子カテゴリ名、親カテゴリを選択した場合は親カテゴリ名を表示したい場合は、そのような条件を追加する必要があるのでしょうか?
abell

2019/05/24 02:29

できました…!色々とありがとうございます。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問