Wordpress: Где разместить мой php-скрипт, если я хочу вызвать его из файла javascript? - PullRequest
2 голосов
/ 17 февраля 2011

Это местоположение файла, а не проблема скрипта или функциональности. Я создал тему Wordpress и хотел вызвать всплывающую контактную форму через jQuery. Если форма проверена, мой js-файл вызовет php-файл для отправки электронного письма.

Вот структура файла / папки:

wp_theme_root
|
js/popup_form.js
|
mailer.php

Я просто хочу знать, где мне разместить форму mailer.php, так как я пытался поместить ее в тот же каталог с файлом js, либо в корень темы, либо в каталог wordpress, но все они не увенчались успехом.

Спасибо за помощь.

Ответы [ 3 ]

1 голос
/ 17 февраля 2011

Если это часть темы, которую вы создаете, вам нужно поместить ее в папку темы или папку включений внутри темы. Вы можете получить к нему доступ, используя метод 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 внутри папки темы в include. Этот метод будет обрабатывать все вызовы ajax с WP в стеке. Убедитесь, что во всех ваших ajax-запросах есть is_ajax_request.

0 голосов
/ 17 февраля 2011

Самый простой способ для этого будет написать код, который обрабатывает отправку почты как плагин. Который будет иметь свои собственные автономные компоненты MVC (большинство из них просто пустые).

Единственный пример, который я смог найти для этого, - JSON-API . Это немного больше, но проще.

0 голосов
/ 17 февраля 2011

Попробуйте поместить его в корневую папку каталога WordPress, а затем вызвать его так: /js/popup_form.js. Обратите внимание на / в начале, если вы не знали, это означает, что начинать с root.

Надеюсь, это работает для вас.

...