Мне необходимо добавить в корень сайта .php скрипт для Ajax обработки формы.
Но почемуто при попытке открыть php скрипт напрямую открывается обычная страница с 404 ошибкой от wordpress.
Как сделать чтоб скрипт можно было открыть напрямую, а Wordpress не блокировал его?
удаление htaccess не помогло
добавил в functions.php, поменяв перменную с названием шаблона, но ничего не выполняется:
<?php
add_action( 'wp_enqueue_scripts', 'myajax_data', 99 );
function myajax_data(){
wp_localize_script('twentyfifteen-script', 'myajax',
array(
'url' => admin_url('admin-ajax.php')
)
);
}
add_action('wp_footer', 'my_action_javascript', 99); // для фронта
function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
action: 'my_action',
whatever: 1234
};
// 'ajaxurl' не определена во фронте, поэтому мы добавили её аналог с помощью wp_localize_script()
jQuery.post( myajax.url, data, function(response) {
alert('Получено с сервера: ' + response);
});
});
</script>
<?php
}
add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');
function my_action_callback() {
$whatever = intval( $_POST['whatever'] );
echo $whatever + 10;
// выход нужен для того, чтобы в ответе не было ничего лишнего, только то что возвращает функция
wp_die();
}
Анатолий, в примере по ссылке идет запрос к send.php. К меня этот файл выдает 404 ошибку, несмотря на то, что файл существует.
Почему-то вп блокирует все скрипты не из дистрибутива.
Скорей всего конфиг сервера обращается только к index.php. Не помню как там у вротпресса роутинг сделан. Но вопрос совершенно не в этом.
Это очень плохая практика, делать из CMS сборную солянку. Хотите расширить функционал - используйте для этого такие инструменты как плагины или function.php в теме. Если у CMS есть точка входа, то надо входить в приложение через неё, а не городить костыли.
antimind, такое отношение к CMS возникло не на пустом месте. Посмотрите на WP у него весь шаблонизатор из php функций состоит. Там даже сами файлы шаблонов, это .php файлы. Если бы у этой CMS было нормально разделение на отображение (HTML и CSS) и логику (PHP), такого желания добавить к теме скрипт отправки сообщения на почту (или что там у него) даже не появилось бы.
Так что, чему вы удивляетесь? Извращенная CMS притягивает таких же людей с извращенным мышлением.
posters, смотрел я на него, и даже работал с ним. Насколько я понимаю, разработчики вротпресса пытаются разделить логику и отображение. Те же самые вышеозвученные инструменты. Но, говнокодеры не хотят понимать как оно работает, поэтому и возникают такие вопросы.
Но, вообще, вротпресс не самый плохой вариант из cms.
Насколько я понимаю, разработчики вротпресса пытаются разделить логику и отображение.
Да ну? Один только файл functions.php внутри папки с темой чего стоит. А необходимость прибегать к хукам прямо внутри темы, чтобы добавить кастомный css класс? Там даже нельзя просто взять и подключить стили и скрипты в шаблон, заключив их в html теги. Вместо этого нужно передать путь в специальную php функцию, которая сгенерирует html код за нас.
Жесть, короче.