web-dev-qa-db-ja.com

カテゴリアーカイブのURLは何ですか?

私のカテゴリのURLが

/ブログ/カテゴリ/ foo

そして私のアーカイブURLは:

/ブログ/ 2011/02 /

2011年2月からの 'foo'ブログのURLは何ですか?

5
Bobby Jack

カテゴリの日付ベースのアーカイブはありません。 /category/[slug]/ページは別のページにまたがって古い投稿を表示するという点で、すでに「アーカイブ」です。

URLにpage/2/page/3/、...を追加することで、さまざまなページにアクセスできます。これらのリンクを追加するためのテンプレートタグは next_posts_link()previous_posts_link() です。

カテゴリアーカイブに日付ベースのレイヤーを追加する場合は、年、任意の月、および任意のページングに一致するように書き換え規則を追加できます。

add_filter( 'category_rewrite_rules', 'wpse8769_category_rewrite_rules' );
function wpse8769_category_rewrite_rules( $category_rules )
{
    global $wp_rewrite;
    // This could be incorrect for fancy permastructs, only tested in simple situations
    $category_permastruct = str_replace( $wp_rewrite->rewritecode, $wp_rewrite->rewritereplace, $wp_rewrite->get_category_permastruct() );
    $category_permastruct = preg_replace( '|^/+|', '', $category_permastruct );

    $category_extra_rules = array(
        // Or split this up over different rewrite rules, if the regex is too complicated
        // Feeds are left as an exercise for the reader
        $category_permastruct . '/([0-9]{4})(/([0-9]{1,2}))?(/page/([0-9]+))?/?$' =>
            'index.php?category_name=$matches[1]&year=$matches[2]&monthnum=$matches[4]&paged=$matches[6]',
    );

    return $category_extra_rules + $category_rules;
}
3
Jan Fabry

Q:2011年2月からの 'foo'ブログのURLは何ですか?

あなたのサイトのコンテキストでのURLは/blogs/category/foo/?y=2011&monthnum=02です。

(私は明らかにこれをコミッションt31osからコピーしたので、このことを彼にクレジットします)

0
hakre