サポート » 使い方全般 » カスタム投稿で月別アーカイブが404エラーになります

  • 解決済 amanokikaku

    (@amanokikaku)


    初級者です。
    いろんな参考書を見ながら、カスタム投稿のサイトをつくりました。

    アーカイブページのサイドバーに
    <?php wp_get_archives(); ?> として
    ・2013年3月
    ・2013年2月
    という表示させることができたのですが、

    2013年3月のリンクを押すと、404エラーになり、月間アーカイブが表示されません。
    このような経験のあるかた、解決方法を教えていただければ幸いです。

    ちなみに パーマリンク設定は日付と投稿名にしてあります。

    functionには以下のように記述してあります。

    //++++++++++++++++++++++++++++++++++++++++++++++
    //kokunai

    //カスタム投稿タイプ
    register_post_type(
    ‘kokunaikaranojoho’,
    array(
    ‘label’ => ‘国内からの情報’,
    ‘description’ => ‘国内からのがんに関するお知らせ’,
    ‘hierarchical’ => false,
    ‘public’ => true,
    ‘has_archive’ => true,
    ‘supports’ => array(
    ‘title’,
    ‘editor’,
    ‘excerpt’,
    ‘thumbnail’,

    ‘comments’,
    ‘trackbacks’

    )
    )
    );

    //カスタムタクソノミー(カテゴリー形式)
    register_taxonomy(
    ‘kokunaikaranojoho_cat’,
    ‘kokunaikaranojoho’,
    array(
    ‘label’ => ‘国内情報のカテゴリー’,
    ‘hierarchical’ => false,
    ‘rewrite’ => array (
    ‘slug’ => ‘kokunaikaranojoho/cat’
    )
    )
    );

    //カスタムタクソノミー(タグ形式)
    register_taxonomy(
    ‘kokunaikaranojoho_tag’,
    ‘kokunaikaranojoho’,
    array(
    ‘label’ => ‘国内情報のタグ’,
    ‘hierarchical’ => false,
    ‘rewrite’ => array (
    ‘slug’ => ‘kokunaikaranojoho/tag’
    )
    )
    );

    //+++++++++++++++++++++++++++++++++++++++++++
    //リライトルール

    $mycpts = get_post_types(array(‘_builtin’ => false));
    foreach ($mycpts as $mycpt) {

    add_rewrite_rule(‘qa/cat/([^/]+)/?$’, ‘index.php?qa_cat=$matches[1]’, ‘top’);

    add_rewrite_rule(‘qa/tag/([^/]+)/?$’, ‘index.php?qa_tag=$matches[1]’, ‘top’);

    add_rewrite_rule($mycpt.’/([0-9]{4})/([0-9]{2})/?$’, ‘index.php?post_type=’.$mycpt.’&year=$matches[1]&monthnum=$matches[2]’, ‘top’);

    add_rewrite_rule($mycpt.’/([0-9]{4})/([0-9]{2})/page/([0-9]{1,})/?$’, ‘index.php?post_type=’.$mycpt.’&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]’, ‘top’);

    }

    //+++++++++++++++++++++++++++++++++++++++++++
    // 月別メニュー

    function add_my_post_type($where, $r) {
    $my_current_cpt = get_post_type();
    return str_replace(
    “post_type = ‘post'”,
    “post_type = ‘$my_current_cpt'”,
    $where
    );
    }
    add_filter(‘getarchives_where’,’add_my_post_type’,10,2);

    //URLにカスタム投稿タイプを含める
    function my_get_archives_link($link_html) {
    return str_replace(
    home_url(‘/’),
    home_url(‘/’).get_post_type().’/’,
    $link_html
    );
    }
    add_filter(‘get_archives_link’, ‘my_get_archives_link’);

    ■■■アーカイブ archive.php 

    <?php get_header(); ?>
    <div id=”wrapper”>

    <div id=”content”>

    <?php //タクソノミー// ?>
    <?php if(is_tax()): ?>
    <p id=”archivetitle”>
    <span>
    <?php if(is_taxonomy_hierarchical($taxonomy)): ?>
    カテゴリー
    <?php else: ?>
    タグ
    <?php endif; ?>
    </span>
    <?php single_term_title(); ?>
    </p>
    <?php endif; ?>

    <?php //年月// ?>
    <?php if(is_month()): ?>
    <p id=”archivetitle”><span>アーカイブ</span>
    <?php echo get_the_date(‘Y年n月’); ?></p>
    <?php endif; ?>

    <?php //記事// ?>
    <?php if(have_posts()): while(have_posts()): the_post(); ?>
    <div class=”post”>

    <p class=”thumb”><?php the_post_thumbnail (‘thumb150’); ?></p>

    <p class=”blogtitle <?php echo get_post_type(); ?>”>
    <?php echo get_post_type_object(get_post_type())->label; ?>
    </p>

    <h2>“><?php the_title(); ?></h2>

    <?php the_excerpt(); ?>

    <p class=”more”>“>続きを読む</p>

    <p class=”postdate”><?php echo get_the_date(‘Y年n月j日’); ?></p>

    </div> <!– .post –>
    <?php endwhile; endif; ?>

    <?php //ページネーション// ?>
    <div id=”pagenation”>
    <p class=”oldpage”><?php next_posts_link(‘« 古い記事’); ?></p>
    <p class=”newpage”><?php previous_posts_link(‘新しい記事 »’); ?></p>
    </div>

    </div> <!– #content –>

    <?php get_sidebar(‘blog’); ?></div>

    <?php get_footer(); ?>

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    404となるURLはどうなっていますか?
    パーマリンクに %post_id% が含まれていると、URLの競合を避けるため、date というディレクトリを挟む形になります。

    リライトルールの方では、これに対応しない形で記述されていますので、条件に合っていない可能性がありますね。

    トピック投稿者 amanokikaku

    (@amanokikaku)

    モデレーター jim912

    (@jim912)

    では、リライトルールの更新をしていないとか?
    パーマリンク設定画面で、変更を加えなくてもよいので、更新をしてみてはどうでしょう。

    トピック投稿者 amanokikaku

    (@amanokikaku)

    ありがとうございます。解決いたしました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿で月別アーカイブが404エラーになります」には新たに返信することはできません。