質問編集履歴

1 デバックモードのエラー文

kio0888

kio0888 score 13

2019/06/29 00:37  投稿

WP_Queryを使うと、指定の箇所からページが表示されなくなる
初歩的なミスであった場合本当に申し訳ございません。
質問させていただきます。
wordpressにて自分のブログテーマを作っているのですが
トップページにカテゴリのボタンを4つ配置し、クリックしたらその場でカテゴリ別の新着記事に切り替わるようにしたいです。
メインの記事一覧は、通常のループを使用し
カテゴリ別の新着記事はWP_Queryを使用して、サブループを作り表示させようとしたのですが
このようにコードを書くと、サブループ以降が表示されなくなります
ページネイション、サイドバー、フッターなどが消えてしまうのです。(Chromeのディベロッパーツールで調べると、どうやらサブループ部分のコードの出力はされているようです)
前にも同じようなバグが生じて、その時はWP_Queryではなくquery_postsを使うと解決することができたのですが、非推奨なために極力避けたいし、WP_Queryは頻出だと思うので、使えない状態のままでいるのではダメだと思い投稿させていただきました。
なぜこのようなことになってしまうのでしょうか?ご教授いただけると幸いです。
※サイドバーにて、query_postsを使用し人気記事一覧を自作して表示しています。関係ないとは思いますが、併用が原因などの可能性はあるでしょうか?
```<?php get_header(); ?>
<main>
<div id="os-nav">
<div class="container">
 <div class="front-head" style="
   background-image: url(<?php echo get_template_directory_uri(); ?>/img/renga.png);
   background-size: cover;">
   <i class="fas fa-thumbtack"></i>
   <h2>極真-Gokushin-とは?!</h2>
 </div>
<?php
       wp_nav_menu(array(
         'container' => 'nav',
         'container_id' => 'osusume_nav',
         'theme_location' => 'place_osusume',
       ));
      ?>
</div>
</div>
<div class="container">
   <article>
    <div class="front-head" style="
 background-image: url(<?php echo get_template_directory_uri(); ?>/img/renga.png);
 background-size: cover;
 ">
      <h2>N E W - A R T I C L E</h2>
    </div>
    <ul class="kirikae-arc">
        <li class="web on">- NEW -</li>
        <li class="des off">- WEB -</li>
        <li class="min off">- DESIGN -</li>
        <li class="mus off">- Minimal -</li>
    </ul>
     <div class="kiji-section">
       <?php
       if(have_posts()):
          while(have_posts()):
           the_post();
            get_template_part('content-top');
           endwhile;
         endif;
         ?>
     </div>
     <div class="kiji-section top-loop2">
       <?php $args = array(
         'category_name' => 'web',
         'posts_per_page' => 10,
         'no_found_rows' => false
         );
         $the_query = new WP_Query($args);
         if($the_query->have_posts()):
         while($the_query->have_posts()):
         $the_query->the_post();
         get_template_part('content-top');
         endwhile;
         endif;
         wp_reset_postdate();
         ?>
     </div>
     <div class="kiji-section top-loop3">
     </div>
     <div class="kiji-section top-loop4">
     </div>
<div class="pagination">
 <?php echo paginate_links( array(
   'type' => 'list',
   'mid_size' => '3',
   'prev_text' => '&laquo;',
   'next_text' => '&raquo;'
   ) ); ?>
</div>
</article>
   <?php get_sidebar(); ?>
   <div class="cb"></div>
 </main>
</div>
<?php get_template_part('back-top'); ?>
<?php get_footer(); ?>
コード
```
```
※6/28追記
wp-config.phpにてデバックモードをonにするとこのようなエラーが発生してました。
Fatal error: Uncaught Error: Call to undefined function wp_reset_postdate() in /Applications/MAMP/htdocs/kyukyoku/wordpress/wp-content/themes/kyukyoku/front-page.php:57 Stack trace: #0 /Applications/MAMP/htdocs/kyukyoku/wordpress/wp-includes/template-loader.php(78): include() #1 /Applications/MAMP/htdocs/kyukyoku/wordpress/wp-blog-header.php(19): require_once('/Applications/M...') #2 /Applications/MAMP/htdocs/kyukyoku/wordpress/index.php(17): require('/Applications/M...') #3 {main} thrown in /Applications/MAMP/htdocs/kyukyoku/wordpress/wp-content/themes/kyukyoku/front-page.php on line 57
Warning: preg_replace(): JIT compilation failed: no more memory in /Applications/MAMP/htdocs/kyukyoku/wordpress/wp-includes/functions.php on line 1909
どうやら記事データの出力は成功しているみたいで、
wp_reset_postdate()でリセットしている箇所で何かしらのエラーが起きているとのことです。
しかし、スペルに違いなどはなく、WP_Queryを使う時にこの手法でリセットすることはお決まりであると思うので、何がおかしいのかさらに話からなっくなってしまいました。
引き続き自己解決を試みますが、心当たりある方はヒントを下さると幸いです。
  • WordPress

    13726 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る