web-dev-qa-db-ja.com

最近の投稿ウィジェットのAjax load moreボタン

最近の投稿ウィジェットを作成しましたが、もっと最近の投稿へのリンクをajaxで取得するためにもっと多くのボタンを作成しようとしていますが、どうやって作成するかについてのチュートリアルはありますか?

1
Mohamed Badawy

AJAXに関するWordPressのドキュメントをご覧ください

テーマまたはプラグインには、次のようなコードが必要です。

add_action('wp_ajax_my_load_recent', 'my_load_recent_posts');
add_action('wp_ajax_nopriv_my_load_recent', 'my_load_recent_posts');
function my_load_recent_posts() {
    $args = array(
        /* Arguments go here, i.e. how many posts to get */
    );
    query_posts($args); /* [1] */

    /* Header wrap output */
    if (have_posts()) : while (have_posts()) : the_post(); /* [2] */
        /* Output for each post */
    endwhile; else :
        /* Output for if there are no posts to get */
    endif;
    /* Footer wrap output */

    wp_reset_query();
}

[1] query_posts() documentation

[2] Wordpressループのドキュメント

次に、この関数に到達するには、jQueryを使用していると仮定して、フロントエンドに配置する必要があります。

$.ajax(ajax_url/* [3] */, {
    method: 'POST',
    data: {
       action: 'my_load_recent',
    },
    success: function(response) {
        /* handling of the output returned by PHP function */
    },
    error: function() {
        /* what to do if there's a server error, like 404
    }
});

[3] AJAXに関するWordPressのドキュメントを参照して、ajax_urlを生成します。「 この記事 が示唆するように、 wp_localize_script() を使用してスクリプトでURLを使用可能にし、次の式を使用して生成します:admin_url( 'admin-ajax.php') "

1
George Yates