この記事は2年以上前に書かれたものです。
情報が古い可能性があります。
情報が古い可能性があります。
Query Posts Controllerについて
「表示件数だけを変えるのにquery_postsなんて使いたくない!」
「ついでに、pre_get_postsもいまいちよくわからない!」
「ついでに、pre_get_postsもいまいちよくわからない!」
そんな方のために需要があるかどうかは分かりませんが、プラグイン作りました。
「Query Posts Controller」という名前ですが、プラグインの処理的にはpre_get_postsを使っているので、query_postsは使っていません(笑)
あまり細かくは考えられていないプラグインですが、投稿タイプごとに表示件数の指定をquery_postsでしているだけのサイトだったら、もしかしたらもうページ送りに悩まされることもないかもしれません…。
ダウンロード
検証バージョン
- WordPress3.8.1
機能
- カスタム投稿タイプ別のアーカイブページの1ページ辺りの表示数の制御
- カスタム投稿タイプに紐づいているカスタムタクソノミー (カスタム分類) のアーカイブページの1ページ辺りの表示数の制御
カスタムタクソノミー (カスタム分類) のアーカイブページの制御も入れたのですが、複数の投稿タイプでカスタムタクソノミー (カスタム分類) を使用している場合を考慮していなかったので、この辺どうするか検討中です…。
使い方
カスタム投稿タイプを作成した状態で、管理者でログインして設定のQuery Posts Controllerを選択します。
カスタム投稿タイプごとに1ページに表示する最大投稿数の設定が可能です。
テンプレート側でquery_postsを使っていたりfunctions.phpでpre_get_postsを使って表示件数を既に変更していなければ期待通りに動作すると思いますが、いろいろと検証中です。固定ページでカスタム投稿を表示するケースは考慮していませんのでhas_archiveをtrueに設定してアーカイブページをご利用ください。
本当はもっといろいろ制御させたくて「Query Posts Controller」という名前をつけたのですが、とりあえず公開で!
※以下のような記述は必要なくなりますね。
archive-event.php
<?php get_header(); $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; $args = array( 'post_type' => 'event', 'paged' => $paged, 'posts_per_page' => 5, ); query_posts( $args ); ?> <?php while ( have_posts() ) : the_post(); ?> <?php endwhile; ?> <?php wp_reset_query(); ?>
はじめまして。
自分の要求に答えれるプラグインかと動作確認をしたかったのが・・。
インストール後に設定画面を開くと
・「投稿タイプ別の1ページに表示する最大投稿数を設定して下さい。」表示
・「設定を保存」ボタン
しか表示されません。
・イベントの1ページに表示する最大投稿数
・お知らせの1ページに表示する最大投稿数
肝心の上記の2つの設定項目が表示されません。
WordPress バージョン 4.2.1 です。
ご連絡させて頂きます。
こんにちは!
イベントとお知らせはデフォルトでその項目が表示されるわけではなく、あくまで一例なのでご自身の作成されているカスタムポストタイプが表示されます。
カスタム投稿タイプを作成されていない場合は、なにも表示されません。
新しいバージョンをまだ確認していないので不具合かもしれませんが、ご確認ください!
早々のお返事、ありがとうございます。
ドド、ド素人そのままの質問で申し訳有りませんでした。
理解しました。(汗
やりたかった事を前で書き忘れたので書いておきます。
アーカイブ一覧時の表示数、通常の全文記事の表示時の表示数をコントロールしたいと思っています。
それで、もしかしたら・・・、と変な(=勘違い)期待をしました。
場違いでした。
丁寧な御返事、助かりました。