設定-表示設定-1ページに表示する最大投稿数
を好きな数字に変えてもだめですか?
xxxx7さん
連絡ありがとう御座います。
上記の方法ですと、
トップページ(index.php)まで、変更されてしまい、
形が崩されてしまうんです。
どうしたら良いのでしょう?
表示設定から変更を行い、
トップページのカテゴリーだけ表示設定で設定した数値と
違うようにするにはどうすれば良いのでしょうか?
こんにちは。
個人的には、よく使う(共通で使う)表示数はxxxx7のおっしゃるように
設定>表示設定>1ページに表示する最大投稿数
で指定しておいて、「それ以外」のページの表示件数をコードで書き換えた方が良いと思います。
(今回の場合はトップページ「のみ」は3件にする)
やり方は色々ありますが、最近だと is_main_query を使うのがスマートです。
gatespaceさん
ありがとう御座います。
仰るとおり、表示設定で、指定した後、該当箇所のみコードを書き加えるという形ですが、
貼って頂いたURLを基に、試行錯誤したのですが、どうしても
上手くいきませんでした。
因みにコードですが、
<?php if (have_posts(3)) : query_posts(array('cat'=>11)); ?>
<?php while (have_posts()) : the_post();
$tmp_title = the_title('','',false);
if(mb_strlen($tmp_title)>12) {
$tmp_title = mb_substr($tmp_title,0,12).'...';
}
?>
上記の部分が該当する箇所なのですが、どの部分を修正する必要があるのでしょうか?
テーマフォルダの functions.php に以下を貼付ければ OK◎
<?php
add_action( 'pre_get_posts', 'my_pre_get_posts' );
function my_pre_get_posts( $query ) {
if ( $query->is_main_query() && ! is_admin() ) {
if ( is_category( 1 ) ) { // カテゴリー ID=1のアーカイブなら、、、
$query->set( 'posts_per_page', 5 ); // 表示したい件数を指定する
}
}
}
?>
kzさんフォローありがとうございます。
補足するとkzさんのコメントの通りにしていただいて、
トップページのに使われているテンプレートのコードは元に戻してみてください。
(とりあえず、今の書かれているコードはおかしいです)
<?php
if (have_posts()) : // have_posts()で数字はいらない。あと、query_postsもいらない。
while (have_posts()) : the_post();
/* ループ内の記事の処理 */
endwhile; //ループ終わり
endif;
?>
皆様ありがとう御座います。返信が大変遅れてしまいまして申し訳ありません。
解決したので、解決済みにしたいと思います。ご丁寧にありがとう御座いました。