サポート » 使い方全般 » ウィジェットカレンダーのリンク先が正しく表示されない

  • 解決済 sasasa24

    (@sasasa24)


    投稿のアーカイブページに、ウィジェットにてカレンダーと月別アーカイブリストを設置しました。
    ですが、例えばカレンダーの4/5の日付を押しても全記事一覧が表示されてしまいます。
    アドレスバーはきちんとhttp://xxx.jp/wp/2016/04/05/になっています。
    また、月別アーカイブも同じで、どの月を押しても全記事の一覧が表示されてしまい、月別で絞り込めません。
    どなたか原因が分かれば教えて頂けないでしょうか?

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • テーマを例えば Twenty Sixteen(カスタマイズなし、ウィジェットのみ設定)にしてプラグインをすべて停止しても、全記事の一覧が表示されますか?

    トピック投稿者 sasasa24

    (@sasasa24)

    gblsm様
    いつもお世話になります。回答ありがとうございます。
    テーマを試しにTwenty Fourteenにしてみたらきちんと動きました!
    (プラグインは停止にしても有効化のままでもどちらでも大丈夫でした)
    ということは、カスタマイズが原因ということでしょうか?
    ちなみに現状はTwenty Thirteenをカスタマイズして使っています。
    ちなみに、サイドバーは
    <?php dynamic_sidebar(); ?>
    で取得しています。

    他にどんなカスタマイズをしてありますか?(サイドバーの表示方法は影響していないと思います)
    例えば archive.php や index.php のコード追加や変更、functions.php に書いた add_filter や add_action を経由して実行される追加の関数などです。

    トピック投稿者 sasasa24

    (@sasasa24)

    gblsm様
    ご回答ありがとうございます。
    function.phpは特に変更していません。

    archive.phpは以下です。

    <?php if ( in_category( array( '★' ) )) : ?>
    <div class="col-sm-9">
    <?php $randimg_posts = get_posts('category_name=★&numberposts=-1');
            foreach( $randimg_posts as $post ) : ?>
    <a href="<?php the_permalink() ?>"><?php /*echo get_the_post_thumbnail($post->ID, 'medium');*/ ?>
    <?php echo get_the_date('Y.n.d'); ?>
    <h3><?php if(mb_strlen($post->post_title)>14) { $title= mb_substr($post->post_title,0,14) ; echo $title. ・・・ ;
    } else {echo $post->post_title;}?></h3>
    <?php echo mb_substr(strip_tags($post-> post_content),0,32).'...'; ?>
    </a>
    <?php endforeach; ?>
    <?php else: ?>
    <?php endif; ?>
    </div>
    
    /* サイドバー */
    <div class="col-sm-3">
    <?php $randimg_posts =  get_posts('category_name=★&numberposts=10');
    global $post;
    foreach( $randimg_posts as $post ) : ?>
    
    <a href="<?php the_permalink() ?>">
    <?php the_title(); ?></span></a><hr>
    <?php endforeach; ?>
    
    <?php dynamic_sidebar(); ?>
    </div>
    
    <?php get_footer(); ?>

    archive.php は日付アーカイブを表示するときに使われるテンプレートです。それなのに、archive.php の中で get_posts を使って投稿を取得しなおして(つまり日付アーカイブを無視して)投稿を表示させているように見えます。それが原因だと思いますよ。

    どの種類のアーカイブのときに、どのような表示内容にするのか、テーマ全体を整理してみれば、対策方法が見つかると思います。archive.php だけをどのように変更するか、という対処方法だと、また別のところに問題が生じるような気がします。

    トピック投稿者 sasasa24

    (@sasasa24)

    gblsm様
    そうだったのですね…教えて頂いてありがとうございます。
    そこを自分でもう1度調べてみて、また報告・質問させて頂きます。
    原因が分かったのですごく助かりました。。ありがとうございました!

    sasasa24さん、不正確な情報をお伝えしてしまいました。申し訳ありません。

    すでにご覧になったかもしれませんが、正しくは下記のドキュメントを見てください。
    テンプレート階層 – WordPress Codex 日本語版

    アーカイブの種類ごとに優先されるテンプレートが異なります。
    日付アーカイブ:

    1. date.php
    2. archive.php
    3. index.php

    カテゴリーアーカイブ:

    1. category-{slug}.php – カテゴリーのスラッグが news ならば WordPress は category-news.php を探す。
    2. category-{id}.php – カテゴリー ID が 6 ならば WordPress は category-6.php を探す。
    3. category.php
    4. archive.php
    5. index.php
    トピック投稿者 sasasa24

    (@sasasa24)

    gblsm様

    お世話になります。解決しましたのでご報告に来ました。

    <?php
    $randimg_posts = get_posts('category_name=AAA&numberposts=10');
     global $post;
     foreach( $randimg_posts as $post ) :
    ?>

    としていた部分を

    <?php
    while ( have_posts() ) : the_post();
    ?>

    に変えて単純にループさせることで正しく表示されるようになりました。
    闇雲にget_postsで取得するのはよくないのだと反省しました。。
    原因を教えて頂けて本当に助かりました!
    ありがとうございました。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「ウィジェットカレンダーのリンク先が正しく表示されない」には新たに返信することはできません。