WordPress (TwentyTen主题):无需打开新页面即可获得搜索结果


WordPress (TwentyTen theme): Get Search Results Without Opening New Page

我在一个WordPress网站工作。

我想使用AJAX方法将搜索结果加载到当前打开的页面。要做到这一点,我需要在不打开新页面的情况下获得执行搜索的PHP代码的输出。

通常,在你输入一个搜索词后,WordPress会打开一个新的页面,URL如下:

mydomain.com/? s = searchword

执行搜索的PHP代码的输出显示在该页的#containerdiv中。

问题:如何在不打开新页面的情况下获得搜索结果,以便我可以使用jQuery将它们加载到当前打开的页面中?

我很感激你的建议!

这个插件为你做了很多。你可能想看看插件的源代码,看看如何为自己利用它。

http://wordpress.org/extend/plugins/threewp-ajax-search/screenshots/

我想你也可以自己调用搜索页面,解析出#container值,然后自己解析结果列表。如果你需要帮助就告诉我。否则,我认为一个已经开发好的插件是非常方便的。

根据要求,这里有一些关于我如何做到这一点的更多想法。这些都不是测试,但我的总体想法是合理的。您必须适当地进行调整以匹配您的安装。例如Get vs Post。超时。请求数据。

  1. 使用jQuery的ajax调用来请求搜索页面

    $.ajax({
                    async: true,
                    data: $dataToSend,
                    datatype: 'xml',
                    beforeSend: function() {
                        console.log('rq');
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.log('error');
                    },
                    success: function(xml, textstatus, jqXHR) {
                        //Process Response Data
                    },          
                    timeout: 10000,
                    type: 'POST',
                    url: 'http://' + document.location.host + '/search'     
            });
    
  2. 处理响应并剔除您感兴趣的数据。http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery

    (xml);美元("div [class = " post "]")。Each (function() {$("#currentPage").append($(this) + "
    ");});

SO拒绝对列表位进行代码块。不好意思