フォーラムへの返信

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 tokku

    (@tokku)

    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?などで)をすることで、
    デフォルトの表示設定の設定値に優先して「追加設定」を参照するようにして制御することはできないのでしょうか?

    できないのであれば、(●)の方法を具体的に教えて下さい。

    トピック投稿者 tokku

    (@tokku)

    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を別にしたい
    トピック投稿者 tokku

    (@tokku)

    レスありがとうございます。

    当然、重複がないように設定する必要がありますね。ユーザーが任意に設定(重複はチェックした上で)するか、連番でuser1,user2,…など。

    ただ、時間的な制約から、authorのページが作られないテーマを探すのが早いのでしょうか。

3件の返信を表示中 - 1 - 3件目 (全3件中)