サポート » 使い方全般 » 親カテゴリーページにて子カテゴリーページの表示と記事一覧(表示数指

  • 解決済 phife

    (@phife)


    初めまして、phifeと申します。

    普段からこのフォーラムをかなり参考にさせていただいて様々な問題を解決しており、本当に感謝に絶えません。

    今回は本フォーラムを調べても、どうしても解決しなかった問題がありましたので質問いたします。もしかしたら、これまで参照した中で解決策はあったかも知れませんが、私自身が気づかなかったのでお許し下さい。

    質問の内容ですが、以下のような親カテゴリページ(category-slug.php)を作成したいと思っております。

    子カテゴリ1の最初の画像
    子カテゴリ1の最新記事×4
    子カテゴリ1の全ての記事を見る⇒

    子カテゴリ2の最初の画像
    子カテゴリ2の最新記事×4
    子カテゴリ2の全ての記事を見る⇒
        ・
        ・

    このような仕様で、子カテゴリが増減される(もしくは変更される)度に自動的に子カテゴリの最初の画像と最新記事4件が取得・表示され、子カテゴリへのリンク(子カテゴリ○の全ての記事を見る⇒)が表示されるようにしたいのです(※「最初の画像」はアイキャッチ画像ではなく、子カテゴリページのテンプレートに直接書かれた画像です)。

    その中には子カテゴリが存在せず、親カテゴリから直接最新記事×4の表示がしたいものもあります。

    子カテゴリは既に作成済みで、記事20件ごとにページ送りがされるようにしてしてありますが、親カテゴリではページ送りを使用せず、常に4件ずつのみを表示したいのです。

    また今回はcategory-slug.phpで作成しておりますが、将来的にカスタム投稿+カスタム分類にて作成していきたいと思っております。

    可能でありましたら、どちらでも応用が効くような方法がありましたらお教えいただけないでしょうか?

    当方はこれまでXHTML+CSSのみのサイト作成しか経験がなくPHPの技術が皆無のため、経験者の方にとっては初歩的な質問かも知れませんが、お教え頂ければ幸いです。

    宜しくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 追記:

    子カテゴリ○の最初の画像
    子カテゴリ○の最新記事×4
    子カテゴリ○の全ての記事を見る⇒

    は、

    子カテゴリ○の最初の画像
    子カテゴリ○のタイトル
    子カテゴリ○の最新記事×4
    子カテゴリ○の全ての記事を見る⇒

    の間違いでした。

    すみません!

    方法的には下記のフォーラム記事と似たようなことをすればよいのではないかなと思いますが、
    いかがでしょうか?

    トップページに親子カテゴリの記事一覧を表示
    http://ja.forums.wordpress.org/topic/21069?replies=9

    mel_chaさん、早速のご返信に感謝いたします。

    当該フォーラムを参照しましたが、それはトップページに表示させる場合のようです。

    親カテゴリのページに表示させる場合、どのようなコードを変えれば良いのでしょうか?

    mel_chaさんも「似たようなことをすれば…」とおっしゃっていたので、当該フォーラムのコードをそのまま利用させて頂くのではないという事は理解できるのですが…。

    お手数ですが宜しくお願い致します。

    お察しの通り、そのまま利用するわけではありません。
    要はget_categories()のparent=に親カテゴリーのIDを指定してあげればいいので、

    $thisID = get_query_var('cat'); //親カテゴリのIDを取得
    $childCats = get_categories('parent='.$thisID); //子カテゴリを配列で取得
    foreach($childCats as $childCat) :
    	$childPosts = get_posts('category='.$childCat->term_id.'&numberposts=4'); //子カテゴリに属する投稿を4件取得
    	global $post;
    	if ($childPosts) :
    		echo ''; // 子カテゴリ○の最初の画像用の記述をここに
    		echo ''; // 子カテゴリ○のタイトル用の記述をここに
    		echo '<ul>';
    		foreach ( $childPosts as $post ) : //子カテゴリの投稿を表示するforeach
    			setup_postdata($post);
    			echo ''; // 子カテゴリ○の最新記事の表示内容用の記述をここに
    		endforeach;
    		echo '</ul>';
    		echo ''; // 子カテゴリ○の全ての記事を見る⇒用の記述をここに
    	endif;
    	wp_reset_postdata();
    endforeach;

    こんな感じで書いていけばご要望のことが出来ると思います。

    その中には子カテゴリが存在せず、親カテゴリから直接最新記事×4の表示がしたいものもあります。

    この分岐方法は前回レスのリンク先フォーラムを参考にしてください。

    mel_chaさん、いつも迅速なアドバイスに感謝いたします。

    度々の質問で恐縮なのですが、もしかしたら私はとんでもない勘違いをしているかも知れないと思いましたので、再度質問させて頂けますでしょうか。

    現在の親カテゴリには

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
         ・
         ・
    子カテゴリの投稿内容
         ・
         ・
    <?php endwhile; ?>
    <?php else : ?>
         ・
         ・
    記事が無い場合の処理
         ・
         ・
    <?php endif; ?>

    というコードが書かれており、本親カテゴリ配下にある子カテゴリの全ての記事一覧がそのまま表示されています。

    mel_chaさんよりアドバイス頂いたコードを上記コードと丸々差し替えるという事で問題ないでしょうか?

    mel_chaさんがご提示のコードの前後に”<?php”と”?>”を記入した上で、試しにechoの”の間の部分にそれぞれの記事情報を差込んで表示の確認してみたのですが、何も表示されなかったものですから…。

    何か私はとんでもない間違いを犯してしまっているのではかいかと思いました。

    本当に度々の質問に恐縮ですが、お手すきの際にお教え頂ければ幸いです。

    宜しくお願い致します。

    mel_chaさん、ありがとうございます!

    たった今解決致しました!

    方法はmel_chaさんご提示のコードを適応した次第です。

    最初に戸惑った要因として、予め作成していた記事データにスタイル(CSS)を多用してデザインしていたため、<div>~</div>の位置や数に問題(ループ内にきちんと対になって書かれていない部分があった)が発生し、表示されなかったり極端にレイアウトが崩れてしまったりしたようです。

    本当にありがとうございました!!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「親カテゴリーページにて子カテゴリーページの表示と記事一覧(表示数指」には新たに返信することはできません。