web-dev-qa-db-fra.com

Trier les pages d'archives avec de "jolies" URL?

Nous voulons que les utilisateurs réorganisent les articles sur une page similaire à la pagination, mais je ne trouve rien nulle part!

Il serait bon de créer un lien vers une URL similaire à .../page/2/title/, title étant le nouvel ordre. Est-ce seulement possible?!

Plusieurs scripts de pagination trouvés mais aucun n'offrent cette option ...

1
v3nt

Ajouter une règle de réécriture avec une partie commande est très facile si vous le faites pour un site. Ce serait plus difficile si vous voulez créer une solution générique qui fonctionne pour toutes les installations avec toutes sortes de structures de permalien et de taxonomies personnalisées.

Ce court exemple fonctionne avec une installation de base de WordPress 3.1, sans taxonomies personnalisées supplémentaires. J'utilise le préfixe orderby pour éviter les conflits avec les noms de publication existants:

add_action( 'init', 'wpse13483_init' );
function wpse13483_init()
{
    add_rewrite_rule( 'category/(.+?)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?category_name=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
    add_rewrite_rule( 'tag/([^/]+)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?tag=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
    add_rewrite_rule( 'type/([^/]+)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?post_format=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
    add_rewrite_rule( 'author/([^/]+)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?author_name=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
    add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[6]&orderby=$matches[4]', 'top' );
    add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[5]&orderby=$matches[3]', 'top' );
    add_rewrite_rule( '([0-9]{4})/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?year=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
}
1
Jan Fabry