質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WordPress

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

2953閲覧

Wordpressで「もっと読む」が動かない

marutama_giant

総合スコア16

WordPress

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/01/30 11:48

Wordpressのオリジナルテーマを作成しています。
記事の一覧の下に「もっと読む」を実装して、ローディングして記事をローディングしていく実装をしたいと思っています。

http://makepo.jp/content/column/web-creation/diary/2015-02-18.html
こちらのサイトを真似ながらやっていたのですが、動きません。

エラー

動きません。
「もっと読む」ボタンを押すと、リンクが「.../page/2」、「.../page/3」と変わっていくが内容は一切変わらりません。

ソースコード

記事の一覧(index.php)

php

1 <div class="recent_list"> 2 3 <?php query_posts($args); ?> 4 <?php if (have_posts()) : ?> 5 <?php while (have_posts()) : the_post(); ?> 6 <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>" id="article"> 7 <div class="item"> 8 <div class="box"> 9 <div class="item_img"> 10 <?php if (has_post_thumbnail()) : ?> 11 <?php the_post_thumbnail('thumbnail'); ?> 12 <?php else : ?> 13 <img src="<?php bloginfo('template_url'); ?>/images/image.jpeg" /> 14 <?php endif ; ?> 15 </div> 16 <div class="item_text"> 17 <h3><?php the_title(); ?></h3> 18 <p><?php the_time('Y/m/d/ g:i a') ?></p> 19 <div class="summary"> 20 <?php the_excerpt('続きを読む'); ?> 21 </div> 22 </div> 23 </div> 24 </div> 25 </a> 26 <?php endwhile; ?> 27 <div class="moreread"> 28 <a href="<?php echo next_posts(0, false); ?>"> 29 もっと見る 30 </a> 31 <img id="loading" src="<?php echo get_template_directory_uri() ?>/images/loading.gif" 32 alt="読み込み中" width="20" height="20" /> 33 </div> 34 <?php else : ?> 35 36 <?php endif; ?> 37 </div>

フッター(footer.php)

スクリプト部分のみ抜粋

php

1<script> 2 // 最大ページ数取得 3 var maxpage = <?php echo $wp_query->max_num_pages; ?>; 4 5 $('#loading').css('display', 'none'); 6 $.autopager({ 7 content: '#article',// 読み込むコンテンツ 8 link: '#moreread a', // 次ページへのリンク 9 autoLoad: false,// スクロールの自動読込み解除 10 11 start: function(current, next){ 12 $('#loading').css('display', 'block'); 13 $('#moreread a').css('display', 'none'); 14 }, 15 16 load: function(current, next){ 17 $('#loading').css('display', 'none'); 18 $('#moreread a').css('display', 'block'); 19 if( current.page >= maxpage ){ //最後のページ 20 $('#moreread a').hide(); //次ページのリンクを隠す 21 } 22 } 23 }); 24 25 $('#moreread a').click(function(){ // 次ページへのリンクボタン 26 $.autopager('load'); // 次ページを読み込む 27 return false; 28 }); 29</script>

これに加えて、「jquery.autopager-1.0.0.js」を入れています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

PHPのコード内の<?php query_posts($args); ?>は意味をなしてないようなので削除してください。

追記
ではwp_reset_query()を使ってないから挙動が変なのかもしれません。
でもこちらget_postsWP_Queryを使うように書かれているのでquery_postsは止めた方がいいでしょう。

投稿2018/01/30 11:58

編集2018/01/30 14:06
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marutama_giant

2018/01/30 13:48

ご回答ありがとうございます。 <?php query_posts($args); ?>はこれの前に、query_posts('post_type=pressrelease');というのを入れてまして、プレスリリースを回す文法が入っています。 ここでは記事を回すために上書きしています。
退会済みユーザー

退会済みユーザー

2018/01/30 14:07

追記しました
marutama_giant

2018/01/31 03:50

ありがとうございます。なんとかローディングが動いて、pageもちゃんと引っ張れるようになったのですが、記事が表示されません。 var maxpage = <?php echo $wp_query->max_num_pages; ?>; $('#loading').css('display', 'none'); $.autopager({ content: '#article',// 読み込むコンテンツ link: '#moreread a', // 次ページへのリンク autoLoad: false,// スクロールの自動読込み解除 start: function(current, next){ $('#loading').css('display', 'block'); $('#moreread a').css('display', 'none'); }, load: function(current, next){ $('#loading').css('display', 'none'); $('#moreread a').css('display', 'block'); if( current.page >= maxpage ){ //最後のページ $('#moreread a').hide(); //次ページのリンクを隠す } } }); $('#moreread a').click(function(){ // 次ページへのリンクボタン $.autopager('load'); // 次ページを読み込む return false; }); こちらのスクリプトがおかしいのでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問