【问题标题】:Wordpress: Where to place my php script if I want to call it from a javascript file?Wordpress:如果我想从 javascript 文件中调用我的 php 脚本,我的 php 脚本应该放在哪里?
【发布时间】:2011-06-28 21:02:53
【问题描述】:

这是一个文件位置,不是脚本或功能问题。我做了一个 Wordpress 主题,想通过 jQuery 调用弹出式联系表单,如果表单通过验证,我的 js 文件将调用 php 文件发送电子邮件。

这是文件/文件夹结构:

wp_theme_root
|
js/popup_form.js
|
mailer.php

我只是想知道应该将mailer.php表单放在哪里,因为我尝试将它与js文件或主题根目录或wordpress目录放在同一目录中,但都没有成功。

感谢您的帮助。

【问题讨论】:

  • 嗨。我正在寻找完全相同的答案。我尝试了钩子的东西,但不确定它是如何工作的。我正在调用一个 js 文件并想运行一个 php 文件。 php 文件位于主题文件夹中。

标签: php javascript jquery wordpress phpmailer


【解决方案1】:

尝试将它放在 WordPress 目录的根文件夹中,然后像这样调用它:/js/popup_form.js。注意前面的/,如果你不知道是从root开始的。

希望这对你有用。

【讨论】:

    【解决方案2】:

    如果它是您正在构建的主题的一部分,您需要将其放在主题文件夹或主题内的包含文件夹中。您可以使用 get_bloginfo() 方法访问它: http://codex.wordpress.org/Function_Reference/get_bloginfo#Template_Directory

    但请记住,直接调用文件时不能调用wordpress函数。如果您的邮件功能只是发送邮件而不依赖于 WP,那么您应该没问题。否则,您需要将其挂接到 WP。

    我一直使用的一种方法是在functions.php中包含这段代码

    add_action('wp', 'check_ajax'); //run this method for every call
    function check_ajax() {
        if (isset($_GET["is_ajax_request"])) { 
            get_template_part('includes/axax_calls'); die();
        }
    } 
    

    然后我在包含的主题文件夹中有一个名为 ajax_calls 的文件。此方法也将处理堆栈中所有带有 WP 的 ajax 调用。确保在所有 ajax 请求中都有“is_ajax_request”。

    【讨论】:

      【解决方案3】:

      最干净的方法是编写将邮件发送作为插件处理的代码。 它将拥有自己的独立 MVC 组件(大部分都是空的)。

      我能找到的唯一现有示例是JSON-API。它有点大但更简单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-02
        • 2011-11-16
        • 1970-01-01
        • 1970-01-01
        • 2017-08-24
        • 2021-05-07
        • 2017-01-16
        • 1970-01-01
        相关资源
        最近更新 更多