tokku
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: カテゴリーアーカイブを2ページ以降非表示にしたいjdbb さん
レスありがとうございます。
私の実現したいことの説明が不十分でした。簡単にいえば、サイト構造を
サイトTOPページ→カテゴリページ→投稿記事ページ
のようにして、
「カテゴリページ」は1ページだけにしたいのです。ここで、
カテゴリー以外のアーカイブページを考慮しないなら、
管理パネル→設定→表示設定→1ページに表示する最大投稿数を100件や1000件にしておけば、
事実上、カテゴリーページを1ページのみにすることが可能かと思います。
ただ、カテゴリー以外のアーカイブページも100件や1000件表示になってしまいます。そこで、
1ページに表示する最大投稿数は5件や10件程度に設定しつつ、
「カテゴリページ」、
もっと言えば、category-slug.phpを作成した「カテゴリページ」だけ、
そのカテゴリーに属する投稿記事の件数が「1ページに表示する最大投稿数」の設定値を超過する場合でも、
hogehoge.com/category-slug/だけしか生成されないようにしたいのです(※1)。hogehoge.com/category-slug/page/2以降は、
表示させたくないというより不要で404表示でいいということです。なので、
category-slug.phpにおいて、
「新着3件のみ表示」がしたいということではありません。最初の質問文で、
「1ページに表示する最大投稿数を3件と設定」というのは、
「カテゴリーabcに属する投稿記事の件数」が「1ページに表示する最大投稿数の設定値」よりも多い場合には、
hogehoge.com/abc/page/2以降のページが生成されてしまって~
という(※1)と同様のことを説明しようとしたものです。そこで、実現したいことは、●「2ページ目以降を404ページにとばす」が近いです。
hogehoge.com/abc/page/3
というのはMovableTypeのように実際に作られているわけではなく
wordpressがこのアドレスを見て表示する内容を変えて表示しているだけという点は理解しているつもりです。
たとえば、
カテゴリーaに属する投稿記事の件数 15件
1ページに表示する最大投稿数の設定値 5件
の時に、category-a.php
404.phpしかテンプレートファイルがない場合、
hogehoge.com/a
またはhogehoge.com/a/page/2
またはhogehoge.com/a/page/3にアクセス
→WPがカテゴリaに属する投稿記事の件数と1ページに表示する最大投稿数の設定値を確認
→存在するページ
→category-a.phpを参照hogehoge.com/a/page/4にアクセス
→WPがカテゴリaに属する投稿記事の件数と1ページに表示する最大投稿数の設定値を確認
→存在しないページ
→404.phpを参照のようになっているのかなと想像しているのですが、これを
hogehoge.com/a/page/2
またはhogehoge.com/a/page/3にアクセス
→WPがカテゴリaに属する投稿記事の件数と「追加設定」を確認(または、WPが「追加設定」を確認)
→存在しないページ
→404.phpを参照のように、WP内に何らかの「追加設定」(たとえばfunction.php?などで)をすることで、
デフォルトの表示設定の設定値に優先して「追加設定」を参照するようにして制御することはできないのでしょうか?できないのであれば、(●)の方法を具体的に教えて下さい。
フォーラム: 使い方全般
返信が含まれるトピック: カテゴリーアーカイブを2ページ以降非表示にしたいkurosquare さん
レスありがとうございます。
投稿ループについての知識に自信がありませんが、
早速試してみたところ、エラーが表示されました。category-abc.phpのコードは
<?php get_header(); ?> <h2>カテゴリータイトル</h2> <p>カテゴリーの説明</p> <?php query_posts('showposts=10'); if (have_posts()) : while (have_posts()) : the_post(); ?> <?php endif; wp_reset_query(); ?> <?php get_sidebar(); ?><?php get_footer(); ?>
エラーは
Parse error: syntax error, unexpected T_ENDIF in /category-abc.php on line 7
です。
line 7にあたるのは
<?php endif; wp_reset_query(); ?>
です。ここで、category-abc.phpのコードを
<?php get_header(); ?> <h2>カテゴリータイトル</h2> <p>カテゴリーの説明</p> <?php query_posts('showposts=10'); if (have_posts()) : while (have_posts()) : the_post(); ?> <?php endwhile; else: ?> <?php endif; wp_reset_query(); ?> <?php get_sidebar(); ?><?php get_footer(); ?>
とすると、エラーは表示されませんが、質問文の状態と一緒で、hogehoge.com/abc/page/2およびhogehoge.com/abc/page/3でも、hogehoge.com/abcと同じ内容のページが作成されてしまいます。
ちなみに、category-abc.phpのコードを
<?php get_header(); ?> <?php query_posts('showposts=10'); if (have_posts()) : while (have_posts()) : the_post(); ?> <h2>カテゴリータイトル</h2> <p>カテゴリーの説明</p> <?php endwhile; else: ?> <?php endif; wp_reset_query(); ?> <?php get_sidebar(); ?><?php get_footer(); ?>
とすると、/abcおよび/abc/page/2および/abc/page/3のページで
<h2>カテゴリータイトル</h2> <p>カテゴリーの説明</p>
が10回繰り返されて表示されます。
フォーラム: 使い方全般
返信が含まれるトピック: ユーザー名とauthor(作成者)のURLを別にしたい