雨過天晴

下層ページをカテゴリーページで済まそう

2014.01.09

WordPress備忘録

img from: フリー素材ぱくたそ

この記事は2014年1月9日に書かれたものです。古い内容や非推奨要素を含む可能性がありますのでご注意ください。

会社のサイト作ってます。
ずっと自分1人でメンテするわけじゃないので、なるべく煩雑にならないようにテンプレートを少なくしていくつもりです。
現在のサイトも、項目ごとに別ページに飛ぶタイプでなく、ずらずらずら~っと縦にトピックスが並んでいくタイプなので、今回もそうしようと思います。

たとえば「会社紹介」なら同じ1ページに「代表挨拶」「会社概要」「組織図」「支社本社」云々と縦に並び、サイドバーにそれぞれへのページ内リンクボタンがある、という感じです。

「代表挨拶」「会社概要」…とそれぞれに同カテゴリで投稿し、カテゴリアーカイブ一覧で表示します。
さて、サイドバーには…となってさて困った。
同じような構造のページがいくつかあり、でもそれぞれに別テンプレートを作るのは避けたい。

というわけで。

ありがとうございますありがとうございます。
このコードでリスト表示させ、それぞれのタイトルの前に

<a href="#post-<?php the_ID(); ?>">

でアンカーを吐き出します。

そしたら。
5件しか表示されない…おおおおお????
どっか間違えた?numberposts効かない?
消したり変えたり色々と焦っても、カテゴリ―指定を消してやっても5件しか…ん?5件?
検索したら、get_postsは

表示件数のデフォルトが5件なので注意

まじですか。

ほう。nopaging=falseを足してやって、

<?php
      foreach((get_the_category()) as $cat) {
      $catid = $cat->cat_ID ;
      break ;
      }
      $get_posts_parm = "'numberposts=-1&nopaging=false&category=" . $catid . "'";
      ?>
      <ul>
      <?php $posts = get_posts($get_posts_parm); ?>
      <?php foreach($posts as $post): ?>
      <li><a href="#post-<?php the_ID(); ?>"><?php the_title(); ?></a></li>
      <?php endforeach; ?>
      </ul>

でとりあえず完了。