【カテゴリー別記事一覧のページ送り不具合の解消】

現在、wordpressにてブログを作っております。
トップページに記事一覧を表示、サイドバーにカテゴリーを配置し、各カテゴリーを押すとそのカテゴリーの記事一覧が表示されるように設定しております。

ここまでは実装出来たのですが、なぜかカテゴリー一覧でのページ送りが機能いたしません。
※トップページではページ送りは機能しております。

コードに間違いがあるのでしょうか?
原因がわからず困っております。
皆様のお力いただけると幸いです。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2014/08/11 17:30:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:ytk141

下記、

カテゴリーページ(category.php)のコードになります。

<?php get_header(); ?>

<!--CONTENTS-->
<div id="contents">
<!--MAIN-->
	<div class="main" id="archive">

<h2><?php the_category(' // ') ?>の記事一覧</h2>

<?php
foreach((get_the_category()) as $cat) {
$catid = $cat->cat_ID ;
break ;
}
$get_posts_parm = "'numberposts=&category=" . $catid . "'";
?>

<div class="cont">
    <?php $posts = get_posts($get_posts_parm); ?>
    
    <?php foreach($posts as $post): ?>
    <ul class="content2">
          <a href="<?php the_permalink() ?>">
           	<li class="img"><?php the_post_thumbnail('thumbnail'); ?></li>
           	<li class="title"><?php if(mb_strlen($post->post_title)>25) { $title= mb_substr($post->post_title,0,25) ; echo $title. ・・・ ;} else {echo $post->post_title;}?></li>
			<li class="cat"><?php the_category(', ') ?></li>
             <li class="date"><?php the_time('Y年m月j日') ?></li>  
             <li class="text"><?php $text= mb_substr(strip_tags($post-> post_content), 0, 80); echo $text. '...'; ?></li></a>
             <a href="<?php the_permalink() ?>"><li class="read">続きを読む▶</li></a>
		  </ul>

<?php endforeach; ?>
</div>

		<?php wp_pagenavi(); ?>
        
        <div class="readall">
        <a href="<?php echo home_url(); ?>"><p>すべての記事を見る</p></a>
        </div>




</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

回答0件)

回答はまだありません

  • id:a-kuma3
    ソースコードを、補足のところに書くときは、以下のように >|| と ||< で挟んで書くと、ペタッと貼りつきます。

    >||
    ここにソースコード
    ||<


    後、以下のようなことを書くと、回答が付きやすいと思います。
    ・テーマに何を使ってるか
    ・自分で Wordpress のコードをカスタマイズしてるか、そのまま使ってるか
  • id:ytk141
    a-kuma3さま

    ご指摘ありがとうございます。

    コード貼らせていただきました。

    ・テーマは自作のオリジナルテーマを使っております。
    ・なのでコードはページごとに自分でカスタムして使っている状態です。

    どうぞよろしくお願い致します。
  • id:a-kuma3
    リクエストをいただいたのは、ありがたいんだけど、こうした方が回答がつきそうだよ、って書けるのと、回答できるかどうかは、別のことだからなあ。
    PHP とか Wordpress とか、ソースは読めるけど、苦手なのですよ(それなりに、回答はしてますが)。

    「今、どのページを見てるよ」ってのを、クエリのパラメータに指定してあげる必要があるんじゃないかな、という気がします。
    http://stackoverflow.com/questions/8228632/wordpress-pagenavi-plugin-doesnt-work-on-category-php


    ぼくなんかよりも、きちんと Wordpress のことを分かってる人に、リクエストしておきます。
  • id:rouge_2008
    特に詳しくはないのですが、a-kuma3さんからリクエストがあったのでお邪魔します。

    > トップページに記事一覧を表示、サイドバーにカテゴリーを配置し、各カテゴリーを押すとそのカテゴリーの記事一覧が表示されるように設定しております。

    各カテゴリーのリンクをクリックすると、クリックしたカテゴリーアーカイブのページにアクセスして記事一覧を表示するようになっているのですか?
    コードの以下の部分で、「the_category()」で特定の記事に関連づけたカテゴリーをリンクつきで見出しに表示し、foreachループ内で「get_the_category()」で取得したカテゴリーの一番最初のカテゴリーのIDを取得して「get_posts()」で使用するパラメータに設定していますが、これは何の為にこのような記述にしているのでしょう?
    カテゴリーアーカイブ等の各種ページは、URL判定によりそのままでも適切なページが表示される仕組みになっています。
    カテゴリーアーカイブの場合は、アクセスしたカテゴリー内の記事一覧を表示します。
    以下のコードのままでは、アーカイブの先頭に表示される記事によっては、アクセスした目的のカテゴリーとは違うカテゴリーが設定されてしまう問題が発生する場合もあると思います。

    /************************************************************/
    <h2><?php the_category(' // ') ?>の記事一覧</h2>

    <?php
    foreach((get_the_category()) as $cat) {
    $catid = $cat->cat_ID ;
    break ;
    }
    $get_posts_parm = "'numberposts=&category=" . $catid . "'";
    ?>
    /************************************************************/


    特に必要がなければ、メインループをそのまま利用してみてください。
    ※WordPressデフォルトのテーマが参考になります。(基本的にすべて以下のループを利用します。)

    /************************************************************/

    <?php if ( have_posts() ) : ?>

    <?php
    // Start the Loop.
    while ( have_posts() ) : the_post();

    // ここにサムネイル画像、記事タイトル等、記事表示の記述

    endwhile;

    wp_pagenavi();
    endif;
    ?>
    /************************************************************/


    ※「get_posts()」では「wp_pagenavi()」によるページネーションは表示できないと思いました。
    a-kuma3さんが紹介したQ&Aにもありますが、別のループを用意する必要がある場合は、プラグインの共同(?)作者さんページにあるように「WP_Query」を使うといいようです。

    http://scribu.net/wordpress/wp-pagenavi/wpn-2-74.html
    ※2つ目のコードの「The new way (better, because it has less side-effects):」を参考にしてください。
  • id:ytk141
    a-kuma3さま
    ご親切に参考サイトいただきありがとうございました。
    またrouge_2008さまを紹介していただきありがとうございます。
    無事、rouge_2008の指摘どおり修正させていただきましたら、思うとおりに動くようになりました!

    この度はありがとうございました!
  • id:ytk141
    rouge_2008さま

    ご指摘いただきありがとうございます。

    >カテゴリーアーカイブ等の各種ページは、URL判定によりそのままでも適切なページが表示される仕組みになっています。
    カテゴリーアーカイブの場合は、アクセスしたカテゴリー内の記事一覧を表示します。

    こちらの部分どうやら難しく考えすぎていたようです。
    ご指摘いただいたとおり、単純にメインループを利用したところ、思うとおりに動くようになりました!
    この度はありがとうございました!
    また何かありましたらどうぞよろしくお願い致します!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません