• 解決済 trazomaw

    (@trazomaw)


    すべてのページに5件新しい記事を表示する処理を書いています。
    投稿ページや固定ページだと問題ないのですが、固定ページをトップページにしたページのみ、新着記事がformタグを作って、submitボタンを使ってリロードさせてやらないと表示されません。
    <?php query_posts(‘showposts=5’); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    新着記事の内容

    <?php endwhile; ?>
    <?php endif; ?>

    とか、
    <?php query_posts(array( ‘posts_per_page’ => 5, ‘offset’ => 0 )); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    新着記事の内容

    <?php endwhile; ?>
    <?php endif; ?>
    だとダメで、
    たまたまタイプミスしたいかのコードだと表示されます。
    <?php query_posts(array( ‘posts_per_page’ => 5, ‘offset’ => 0’ )); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    新着記事の内容

    <?php endwhile; ?>
    <?php endif; ?>

    ミスしたところは、query_postsの一番右のシングルクォーテーションを書いてしまったところです。
    さっぱりわかりません。

    どなたかご教示願います。

5件の返信を表示中 - 46 - 50件目 (全50件中)
  • >検証された経緯

    それは、現在運用されているWordPressだけでのことですか。
    新しいWordPressのサイトを作って再現するか試すことで同様環境では『バグ』と判断されても仕方ないとなるでしょう。
    そのことで、今後同様環境でWordPressを使うユーザーの参考資料になるものです。
    個人的に完結させることで済むのでしたら、公称する必要は大きくありませんね。
    他の環境のユーザーがサイトにアクセスした時に、おかしい表示をするサイトだねと判断されることで終わるでしょう。

    W3 Total Cache、これは私もハマりました。ていうか、入れただけでサイトが真っ白になってしまいました。すぐに外しました。

    その時は、いったんキャッシュを停止してからプラグインを無効にされていらっしゃったことでしょう。

    トピック投稿者 trazomaw

    (@trazomaw)

    わかました、少し忙しいので遅くなるかもしれませんが、別のサーバーに作って確かめてみます。

    トピック投稿者 trazomaw

    (@trazomaw)

    別のサーバーでプラグイン無しで小テーマでトップページを固定ページにして、
    1.最初のデータを入力(投稿)
    2.次のデータを入力(投稿)
    3.トップページのリンクをクリック
    4.新しく入力したデータが表示されるかチェック
    5.2~4の繰り返し
    (一度、リセットしたいと思ったら、submitボタンを押して最新の投稿を表示)

    を行ったところ、ちゃんと動きました。

    ということは私のソースが悪いということになります。
    少し追いついて考えてみると、1点気になるところがありました。
    トップページと他に2つのページが固定ページなんですが、
    その合計3つのページだけ、別のスタイルシートを適用しようとしていました。
    get_header()が使えません。それで考えたのが、ページのソースを見て、
    ヘッダー部分を丸々コピーするということでした。
    そのコピーしたところをよく見ると、
    現在のページと前のページと次のページのタグがついていました。
    これが悪さをしていたんだと思い、(書く投稿のページのソースをコピーしていた。。。。アホ)トップページのソースをコピーして、

    <?php
    $args = array(
        'posts_per_page' => 5
    );
    ?>
    <ul>
    <?php $my_query = new WP_Query($args); ?>
    <?php if ($my_query->have_posts()) : ?>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
    
      <li>
    
      <span class="date">
    
      <?php the_time('Y年n月j日'); ?>
    
      <?php
    
        $days=30;
    
        $today=date('U'); $entry=get_the_time('U');
    
        $diff1=date('U',($today - $entry))/86400;
    
        if ($days > $diff1) {
    
      echo '<img src="http://www.trazomaw.miraiserver.com/images/new.png" alt="New" />';
    
      }
     
      ?>
    
      </span>
    
        <a href="<?php the_permalink(); ?>"><?php the_title();?></a>
    
      </li>
    
        <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_postdata(); ?>
    
    </ul>

    このソースを実行したところ、うまく新しい投稿が取得することができました。

    皆さん大変お騒がせしてしまい申し訳ありません。
    ページ送りの静的ページにいくら値を入れても代わる訳ありませんよね。
    常に同じ所を見ているわけで。
    wordpressのバグではありませんでした。

    新しくしたことで、誤りが見つかってよろしかったですね。
    強行していたら尚更に要因を見つけにくい事態になっていたかもしれません。
    本番サイトでは試みを行わない。
    この事を侮らないようにしたい。その勉強になりました。
    ご苦労さまでした。

    モデレーター Takuro Hishikawa

    (@hissy)

    なるほど、意外なところに原因が…。解決して良かったです。

5件の返信を表示中 - 46 - 50件目 (全50件中)
  • トピック「トップページの新着記事だけ更新されないが、タイプミスをしたと思った」には新たに返信することはできません。