Php 带参数的Ajax Url Wordpress

Php 带参数的Ajax Url Wordpress,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我正在制作一个过滤器下拉框,以显示和更改每页的当前帖子。 这是我的密码: <select name="order" id="orderBy"> <option value="date" selected="selected">News</option> <option value="orderByFeatured">Featured News</option> <opti

我正在制作一个过滤器下拉框,以显示和更改每页的当前帖子。 这是我的密码:

      <select name="order" id="orderBy">
        <option value="date" selected="selected">News</option>
        <option value="orderByFeatured">Featured News</option>
        <option value="orderByViews">Most viewed posts</option>
      </select>
      <select name="showposts" id="viewPostCount">
        <option value="12" selected="selected">Views : Default</option>
        <option value="2">Views : 2</option>
        <option value="3">Views : 3</option>
        <option value="8">Views : 8</option>
        <option value="16">Views : 16</option>
        <option value="20">Views : 20</option>
      </select>

  jQuery('#orderBy,#viewPostCount').change(function () {
    var orderBy = jQuery('#orderBy').val();
    var viewPostCount = jQuery('#viewPostCount').val();

    var targetURL = 'http://localhost/wordpress/category/tin-tuc/?order=' + orderBy + '&showposts=' + viewPostCount + ' #listPosts';
    jQuery('#listPosts').html('<div id="listPosts"><div class="waiting" style="height:300px;"></div></div>').load(targetURL);
  })

新闻
特色新闻
浏览量最大的帖子
视图:默认值
意见:2
意见:3
意见:8
意见:16
意见:20
jQuery(“#orderBy,#viewPostCount”).change(函数(){
var orderBy=jQuery('#orderBy').val();
var viewPostCount=jQuery('#viewPostCount').val();
var targetURL=http://localhost/wordpress/category/tin-tuc/?order=“+orderBy+”&showposts=“+viewPostCount+”#listPosts”;
jQuery('#listPosts').html('').load(targetURL);
})
但它不起作用。看起来像url示例:不会起作用。它仍然显示10篇文章(默认wp设置),而我只有10篇文章。
我该怎么做?谢谢你的帮助

在WordPress中使用Ajax需要遵循以下特定步骤:

主要是:

  • add_action('wp_ajax_my_action'、'my_action_callback')
  • 应该为每个ajax调用添加以上内容

  • 在ajax请求中,需要传递以下参数:
  • var数据={
    “行动”:“我的行动”,
    “orderBy”:jQuery(“#orderBy”).val(),
    “viewPostCount”:jQuery(“#viewPostCount”).val()
    };

    您需要将其与其他数据一起传递,例如在您的案例中,viewPostCount&orderBy

  • 您的ajax函数应命名为
    my\u action\u callback
    ,正如在
    add\u action
    中添加的那样

    函数my\u action\u callback(){
    //做任何事
    wp_die();//需要立即终止并返回正确的响应
    }


  • 您是否正在将页面的整个输出加载到#listPosts div中?这一点都不明智。阅读有关将Ajax与Wordpress结合使用的内容(有一个内置选项)。如果url有效,我认为它应该将输出显示到#listPosts div中,但即使我在web浏览器上键入该url,它也不起作用。