如何使用ajax(WordPress)添加更多负载以获取自定义查询数据?

我正在尝试从 WordPress 中的自定义查询循环加载更多帖子,我创建了自定义帖子类型“企业”,并希望在单击加载更多按钮时加载“更多企业”。我正在使用 Visual Composer 短代码来添加 Businesses 的内容。我已成功创建加载更多按钮以获得更多业务,但它在提到的“id”内以及该 id 之外附加数据。我无法检测到问题。


这是我的代码:在functions.php中,我添加了这个本地化脚本::


wp_localize_script( 'test-script', 'ajax_posts', array(

    'ajaxurl' => admin_url( 'admin-ajax.php' ),

    'noposts' => __('No older posts found', 'test'),

    'page' => get_query_var( 'paged' ) ? get_query_var('paged') : 1,     

));

我的 main.js 文件代码包含 ajax 调用如下:


function load_posts(data, button, wrapper, max_page, load_more_txt ="View All"){

       $.ajax({

            type: "POST",

            dataType: "html",

            url: ajax_posts.ajaxurl,

            data: data,

            beforeSend : function ( xhr ) {

                button.text('Loading...');

            },

            success: function(data){

                if( data ) {

                    button.text( load_more_txt ).prev().before(data);

                    ajax_posts.page++;

                wrapper.append(data);

                    if ( ajax_posts.page == max_page ) {

                        button.remove();

                    }

                }

            },

            error : function(jqXHR, textStatus, errorThrown) {

             $loader.html(jqXHR + " :: " + textStatus + " :: " + errorThrown);

            }

       });

       return false;

    }


catspeake
浏览 153回答 1
1回答

炎炎设计

我已经使用过button.text( load_more_txt ).prev().before(data);,它会为我复制数据。现在我只是用来button.text( load_more_txt );在加载后显示按钮文本。现在检查这个功能。function load_posts(data, button, wrapper, max_page, load_more_txt ="View All"){       $.ajax({            type: "POST",            dataType: "html",            url: ajax_posts.ajaxurl,            data: data,            beforeSend : function ( xhr ) {                button.text('Loading...');            },            success: function(data){                if( data ) {                    //button.text( load_more_txt ).prev().before(data);                    button.text( load_more_txt );                    ajax_posts.page++;                wrapper.append(data);                    if ( ajax_posts.page == max_page ) {                        button.remove();                    }                }            },            error : function(jqXHR, textStatus, errorThrown) {             $loader.html(jqXHR + " :: " + textStatus + " :: " + errorThrown);            }       });       return false;    }这解决了我的问题。
打开App,查看更多内容
随时随地看视频慕课网APP