WordPressでカスタム投稿タイプごとに1ページに表示する最大投稿数の設定と表示の変更を可能にするプラグイン「Query Posts Controller」を作りました

Query Posts Controller

WordPressでカスタム投稿タイプごとに1ページに表示する最大投稿数の設定と表示の変更を可能にするプラグイン「Query Posts Controller」を作りました!

試作ですが、公開します。

  

この記事は1年以上前に書かれたものです。
情報が古い可能性があります。

Query Posts Controllerについて

「表示件数だけを変えるのにquery_postsなんて使いたくない!」
「ついでに、pre_get_postsもいまいちよくわからない!」

そんな方のために需要があるかどうかは分かりませんが、プラグイン作りました。

「Query Posts Controller」という名前ですが、プラグインの処理的にはpre_get_postsを使っているので、query_postsは使っていません(笑)

あまり細かくは考えられていないプラグインですが、投稿タイプごとに表示件数の指定をquery_postsでしているだけのサイトだったら、もしかしたらもうページ送りに悩まされることもないかもしれません…。

ダウンロード

検証バージョン

  • WordPress3.8.1

機能

  • カスタム投稿タイプ別のアーカイブページの1ページ辺りの表示数の制御
  • カスタム投稿タイプに紐づいているカスタムタクソノミー (カスタム分類) のアーカイブページの1ページ辺りの表示数の制御
カスタムタクソノミー (カスタム分類) のアーカイブページの制御も入れたのですが、複数の投稿タイプでカスタムタクソノミー (カスタム分類) を使用している場合を考慮していなかったので、この辺どうするか検討中です…。

使い方

設定画面1
カスタム投稿タイプを作成した状態で、管理者でログインして設定のQuery Posts Controllerを選択します。

設定画面2
カスタム投稿タイプごとに1ページに表示する最大投稿数の設定が可能です。

テンプレート側でquery_postsを使っていたりfunctions.phppre_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(); ?>
  

共有やブックマークなど

  • nori

    はじめまして。
    自分の要求に答えれるプラグインかと動作確認をしたかったのが・・。
    インストール後に設定画面を開くと

    ・「投稿タイプ別の1ページに表示する最大投稿数を設定して下さい。」表示
    ・「設定を保存」ボタン
    しか表示されません。

    ・イベントの1ページに表示する最大投稿数
    ・お知らせの1ページに表示する最大投稿数

    肝心の上記の2つの設定項目が表示されません。

    WordPress バージョン 4.2.1 です。
    ご連絡させて頂きます。

  • こんにちは!

    イベントとお知らせはデフォルトでその項目が表示されるわけではなく、あくまで一例なのでご自身の作成されているカスタムポストタイプが表示されます。
    カスタム投稿タイプを作成されていない場合は、なにも表示されません。

    新しいバージョンをまだ確認していないので不具合かもしれませんが、ご確認ください!

    • nori

      早々のお返事、ありがとうございます。
      ドド、ド素人そのままの質問で申し訳有りませんでした。
      理解しました。(汗
      やりたかった事を前で書き忘れたので書いておきます。
      アーカイブ一覧時の表示数、通常の全文記事の表示時の表示数をコントロールしたいと思っています。
      それで、もしかしたら・・・、と変な(=勘違い)期待をしました。
      場違いでした。
      丁寧な御返事、助かりました。