web-dev-qa-db-fra.com

Désactiver la réécriture d'URL de pagination wordpress pour une page spécifique

J'espère que quelqu'un pourra m'aider avec le problème suivant. J'ai une page wordpress: http://www.howdesign.com/design-jobs et une liste des emplois provenant de behance.net via JavaScript. Lorsque vous cliquez sur "Page suivante" ou sur un numéro de page spécifique, l'URL est supposée être la suivante: /design-jobs/?callback=Joblist.search.repage&page=2&sort=published_date&status=current

Cependant, WordPress prend automatiquement le "page = 2" et réécrit l'URL comme

/design-jobs/2/?callback=Joblist.search.repage&sort=published_date&status=current

(Je n'ai pas pu publier plus de deux URL, d'où la version abrégée). Notez que le numéro 2 est maintenant en dehors de la chaîne de requête et que "page = 2" a également été supprimé. Ceci rompt alors la pagination de la liste des emplois sur cette page.

Je me demandais s'il existe un moyen de désactiver ce comportement de réécriture pour une page spécifique afin de permettre à la pagination de fonctionner correctement.

2
matr07

Le filtre redirect_canonical en est responsable, ce que vous pouvez désactiver de manière sélective en fonction de la page demandée. Ceci n’a pas été testé, mais devrait fonctionner:

function wpa66273_disable_canonical_redirect( $query ) {
    if( 'design-jobs' == $query->query_vars['pagename'] )
        remove_filter( 'template_redirect', 'redirect_canonical' );
}
add_action( 'parse_query', 'wpa66273_disable_canonical_redirect' );
2
Milo