サポート » プラグイン » Ajaxローディング

  • 解決済 wakaba2014

    (@wakaba2014)


    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とデータベースの勉強をするべきだと自分でも思いますが、今は早めに動作させたいので恥を忍んでお聞きします。
    また参考になりそうなサイトや

    どうか助けて下さい、お願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 wakaba2014

    (@wakaba2014)

    失礼しました、編集中に送信してしまいました。
    「また、必要としている動作について参考になりそうなサイトや読むと勉強になる記事があれば紹介してくだされば幸いです。」

    モデレーター Takuro Hishikawa

    (@hissy)

    挙げられているリンク先は参考にしない方がいいと思います。SQLインジェクションの脆弱性がありますし、WordPressの開発手法として全体的に推奨されません。

    かといって、ググってみたんですが全然まともな記事が出てきませんね。困ったものです。

    こんな記事を見つけましたがいかがでしょうか(私がアドバイスしたことになってるが忘れている…)
    http://nskw-style.com/2012/jquery/jquery-autopager-on-wp.html

    WordPressでAjaxを使用する際の基本的な知識
    http://notnil-creative.com/blog/archives/2665

    トピック投稿者 wakaba2014

    (@wakaba2014)

    返信ありがとうございます!まだ解決できてないので大変助かります。

    >挙げられているリンク先は参考にしない方がいいと思います。SQLインジェクションの脆弱性がありますし、WordPressの開発手法として全体的に推奨されません。
    わかりました、確かに脆弱性を指摘する記事も何件か見ていたので気になっていたのでこちらを参考に開発するのはやめておきます。ご忠告ありがとうございます。

    参考になる記事の紹介ありがとうございます、早速読んで試してみたいと思います。
    作業中にまた何か疑問がでたらこちらで質問させていただきます、コードが出来次第こちらで報告します。
    失礼しました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Ajaxローディング」には新たに返信することはできません。