web-dev-qa-db-ja.com

「きれいな」URLでアーカイブページをソートしますか?

ページ付けに似たページで投稿を並べ替えてもらいたいのですが、どこにも見つかりません。

.../page/2/title/のようなURLへのリンクを作成するのは素晴らしいことです。titleは新しい順序です。これでも可能ですか。

いくつかのページ分割スクリプトが見つかりましたが、どれもこのオプションを提供していません...

1
v3nt

1つのサイトに対してそれを行う場合、注文パーツを含む書き換えルールを追加することは非常に簡単です。すべての種類のパーマリンク構造とカスタム分類法を使用してすべてのインストールに対して機能する一般的なソリューションを作成したい場合、それは困難になります。

この短い例は、特別な分類法を追加することなく、WordPress 3.1の基本インストールで機能します。既存の投稿名との競合を防ぐためにorderby接頭辞を使用します。

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