【问题标题】:jQuery.post() in WordpressWordpress 中的 jQuery.post()
【发布时间】:2012-12-18 01:01:04
【问题描述】:

我目前正在为 Wordpress 编写一个聊天框插件。
该插件使用 jQuery.post() 方法将数据发送到 php 文件,以便将输出写入 html 文件,然后使用 jQuery 将其加载到聊天窗口。

在我用来将聊天记录写入 html 文件的 php 文件中,我需要使用 Wordpress API 函数,但 Wordpress 不包含此 php 文件,因此无法访问 Wordpress API。

有没有办法将此聊天数据发送到 Wordpress 包含的 php 文件,以便我可以使用 Wordpress API?解决这个问题的最佳方法是什么?

【问题讨论】:

  • WordPress Codex 是个好地方:codex.wordpress.org/Writing_a_Plugin
  • @valentinas 在过去的 2 个小时里,我一直在研究法典,试图找到我问题的答案。我没有找到它,所以我想我会在这里尝试。

标签: php jquery wordpress post


【解决方案1】:

您可以使用wp_localize_script 将 JavaScript 对象中的 ajax url 发送到页面:

function my_localized_vars() { 
    return array(
      'site_url' => get_bloginfo('url'), 
      'ajax_url' => admin_url('admin-ajax.php')
    );
} 
wp_localize_script('needle', 'object_name', my_localized_vars());

然后你可以添加一个动作并处理请求。 http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_%28action%29

为了使用 JavaScript 获取 url,您可以编写代码:

var url = object_name.ajax_url;

【讨论】:

  • 这是一个更好的方法。我最初的答案是简单地包含 wp-blog-header.php 文件是一种非常懒惰的方法。
  • @maiorano84 我通常不使用wordpress,在我上一个wordpress主题的项目中,我发现这种方式是在wordpress中使用ajax的标准方式,它对我有用。
  • 我在恭维你。这是一个很好的答案,也是实现 AJAX 请求的正确方法。
【解决方案2】:

不要使用单独的 PHP 文件,而是将其包装在 WordPress 插件中。 WordPress Codex 将告诉您如何连接 write a plugin 以及如何将其连接到 handle your ajax request

一旦您将它作为插件工作,您将能够访问所有 WordPress API。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多