Wordpress 在从 url 获取参数的页面加载上使用 ajax

Posted

技术标签:

【中文标题】Wordpress 在从 url 获取参数的页面加载上使用 ajax【英文标题】:Wordpress use ajax on page load from url get parameters 【发布时间】:2019-04-27 16:51:39 【问题描述】:

所以我正在网站上建立一个搜索,主要搜索表单在主页上,用户可以在其中输入信息的喜欢、兴趣、书籍、电影。

并且该表单应提交到将显示搜索的另一个页面。 所以它与任何其他搜索类似,但在搜索页面上,我应该在 url 中保留参数,所以它不会是 POST,而是 GET。

主页类似于mywebsite.com

当提交表单时,它会使用 GET 参数发布,因此用户可以将搜索结果保存在他的 url 中。提交的帖子应该导致类似的内容。

mywebsite.com/search?interests=sports&books=harry+potter&movies=moviename

因为搜索和加载结果可能需要一些时间,所以我想加载页面,而不是在 ajax 响应后执行 ajax 发布来搜索功能并填充搜索结果。

我已经内置了一些 ajax 内容加载以及使用 ajax 发布和加载数据,但所有这些都保持在同一页面上,当您在 wordpress 中将内容从一个页面提交到另一个页面时,我从未构建过。

有什么建议我可以如何做到这一点并让 ajax 抓取内容?

【问题讨论】:

一旦你有 GET 参数,你就可以在钩子 "wp_footer" 中运行你的 ajax。 【参考方案1】:

我找到了答案,其实很简单,而是用函数触发ajax,比如点击按钮的函数。

只需在页面加载时触发 ajax,不要将脚本排入除该页面之外的任何其他位置,这会有所帮助。

if ( is_page_template('template-search.php') ) 
    wp_enqueue_script('ajax_search');

这将确保脚本仅在该模板页面上加载,至于脚本本身,只需在页面准备好加载 ajax:

jQuery(document).ready(function($) 
jQuery.ajax(
    dataType: 'json',
    url: search_flight.ajaxurl,
    data: 
        action: 'search_flight',
    ,
    beforeSend: function() 

    ,
    success: function(data) 
        console.log(data);
    ,
    error: function() 
    
);
);

【讨论】:

以上是关于Wordpress 在从 url 获取参数的页面加载上使用 ajax的主要内容,如果未能解决你的问题,请参考以下文章

如何从 wordpress 中的帖子页面 id 获取 acf 的画廊图片 url

在 Wordpress 的元标记中获取页面 URL 的最佳方法是啥?

php 获取Wordpress中主要帖子页面的URL

PHP 获取WordPress的当前页面URL(上下文)

获取WordPress的当前页面URL(上下文)

js实现在页面打开链接时自动给url加上#记录值参数