web-dev-qa-db-ja.com

プラグインのカスタムページで$ pagedは常に0

この記事で概説するように、渡される特定のクエリ変数に応じて特定のテンプレートをロードするプラグインを作成しています。実際には、フロントエンドにプラグインのページを作成します。

データベースにページを追加せずにページを作成する - Brian Fegterによる最初の回答

だからmysite.com/foobarに行けば私のカスタムテンプレートを使うことができる。ただし、関数をwp_headにフックしてページ付きのquery_varを出力すると、URLの値(mysite.com/foobar/page/2など)にかかわらず、常に0が返されます。

なぜこれが起こっているのかについて何か考えはありますか?私のプラグインがフロントエンドに新しいページを作成するためのより良い方法はありますか?

前もって感謝します。

1
mjjwatson

私はこれを自分で解決しました。問題は

add_rewrite_rule('^foobar?','index.php?is_foobar_page=1','top');

これにより、他のquery_varsが作成されなくなります。これを解決するために、もう少し複雑な書き換え規則コンボを設定します。

add_rewrite_rule('^foobar?$','index.php?is_foobar_page=1','top');
add_rewrite_rule('foobar/page/([0-9]+)?$','index.php?is_foobar_page=1&paged=$matches[1]','top');

これは、プラグインのサブページ 'foobar'の作成を考慮に入れ、このページ内のページ付けも可能にします。

これが誰かに役立つことを願っています。

1
mjjwatson