web-dev-qa-db-fra.com

$ paginé toujours sur la page personnalisée du plugin

Je crée un plugin qui charge un modèle spécifique en fonction de la requête transmise, créant ainsi une page pour le plugin sur le front-end, comme indiqué dans ce message:

Créez une page sans ajouter de page dans la base de données - la première réponse de Brian Fegter

Donc, si je me dirige sur mysite.com/foobar, je peux utiliser mon modèle personnalisé. Cependant, si j'attache une fonction à wp_head et affiche le fichier query_var paginé, il renvoie toujours 0, quelle que soit la valeur de l'URL (mysite.com/foobar/page/2 ou un exemple).

Des idées quant à pourquoi cela se produit? Y at-il un meilleur moyen pour mon plugin de créer une nouvelle page sur le front-end?

Merci d'avance.

1
mjjwatson

Je l'ai résolu moi-même. Le problème étant:

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

Ce qui empêche la création de tout autre query_vars. Pour résoudre ce problème, un combo de règles de réécriture légèrement plus compliqué est configuré:

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');

Cela prend en compte la création de la sous-page du plugin 'foobar' et permet également la pagination au sein de cette page.

J'espère que ça aide quelqu'un.

1
mjjwatson