Ajaxローディング
-
WordPressのバージョンは3.7.2、PHPのバージョンは5.2.17です。
はじめてネットでプログラミングの質問をするため、勝手ですが説明不足や礼儀不足の点がございましたら指摘や注意をいただければ助かります。
まだまだ未熟なため質問する回数が多くなってしまうかもしれませんが、よろしくお願いします。最終的に希望する動作は、ユーザーが「もっと表示する」ボタンを押すごとに任意のカテゴリIDを持つ投稿記事を、任意の数表示させ、表示される記事が無くなれば「もっと表示する」ボタンを非表示にする、というものを目指しています。
そこで参考サイトとして「WordPress ページングはやめてAjaxローディングにする」
http://hijiriworld.com/web/wp-ajax-loading/
を習って紹介された動作まではできるようにはなりました。その後、任意のカテゴリIDの記事のみを読み込ませようとしました。参考サイトの「テンプレート」に当たる3行目のコードをID10の記事を2つ表示するため
<?php query_posts('showposts=2&cat=10'); ?>
と書き換えて最初に表示される記事は任意の記事になりましたが、「もっと表示する」ボタンをクリックして動作させると任意の記事以外の記事も読み込まれてしまいました。
「もっと表示する」ボタンをクリックした後に生成される記事を、任意のカテゴリIDの記事にしたいです。
これはPHPファイルのmore-disp.phpを書き換えればいいのでしょうか?また、その場合どういった記述をすれば任意のカテゴリIDの投稿記事を得ることができるのでしょうか?
以下は参考サイトで紹介されているmore-disp.phpのコードです。<?php require_once("../../../wp-config.php"); $now_post_num = $_POST['now_post_num']; $get_post_num = $_POST['get_post_num']; $sql = "SELECT $wpdb->posts.ID, $wpdb->posts.post_title, $wpdb->posts.post_excerpt FROM $wpdb->posts WHERE $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_status = 'publish' ORDER BY $wpdb->posts.post_date DESC LIMIT $now_post_num, $get_post_num"; $results = $wpdb->get_results($sql); $html = ""; foreach ($results as $result) { $html .= '<article>'; $html .= '<h2><a href="'.get_permalink($result->ID).'">'.apply_filters('the_title', $result->post_title).'</a></h2>'; $html .= '<div class="excerpt">'.apply_filters('the_excerpt', $result->post_excerpt).'</div>'; $html .= '</article>'; } echo $html; ?>
ユーザが決めるタイミングで読み込みを行いたいので、「WP-AutoPager」などの自動読み込みは考えていません。色々と足りてない予備知識があるのでAjaxとデータベースの勉強をするべきだと自分でも思いますが、今は早めに動作させたいので恥を忍んでお聞きします。
また参考になりそうなサイトやどうか助けて下さい、お願いします。
- トピック「Ajaxローディング」には新たに返信することはできません。