Не работают базовые функции WordPress при Ajax запросе. Как исправить?
При обращении к пользовательскому шаблону через ajax получаю такую ошибку:
Fatal error: Call to undefined function query_posts() in /home/virtwww/w_egoist1-ru_c12ff7c5/http/wp-content/themes/egoist2/sitemap-ajax.php on line 11
Т.е. в этом файле не работают базовые функции WP ! Как это исправить ?
Вам нужно подключить среду вордпресс так:
Сделать это нужно в файле обрботчике Ajax запроса:
sitemap-ajax.php
В подключаемом через ajax php файле запускаю планировщик события. Почему-то не работает. Воспользовался предложенным вариантом. Та же история
В чем может быть причина?
Как именно запускаешь? Событие наступило-то? Ну и там еще несколько причин может быть, планировщик - дело тонкое...
Более правильный вариант, использовать для Ajax встроенное в движок api, а делать отдельный файл и подгружать туда вордпресс для работы с аяксом совершенно не кошерно.
А можно узнать, почему не кошерно? У меня на этом сайте например, свой файл обработчик и как мне кажется он удобнее: кроме прочих мелочей, я могу указать константу SHORTINIT, могу указать, чтобы вообще не подгружать WP, когда можно. А оригинальный файл этого не может... Он скорее предназначен для использования в админ-панели, для разработки плагинов, а для тем, как мне кажется, нормально создать свой файл обработчик... ИМХО
На самом деле нюансов много.
Дополню, у вас нормальная статья по встроенному Ajax, но для первого знакомства, человеку не сильно смыслящему будет тяжеловато.
http://www.benmarshall.me/wordpress-ajax-frontend-backend/#ajax-frontend - вот тут оно попрощще, разобравшись с этим уже можно ваше читать. Я обычно в таком порядке людям ссылки на форуме кидаю для изучения вопроса.
ну и P.S. вот такой вот баг
http://joxi.ru/QeAOlbbZsgPwro
Извините не понятно в чем баг? Не активируется? Я активировал сейчас в админке...
Почему у вас не получилось отредактировать ответ - кнопка "редактировать" не работает? Сейчас попробовал от простого пользователя оставить ответ и отредактировать его - все работает.
И еще ответте почему комментарий не оставили, а очередной ответ написали?
p.s. по второму
click(function(event){event.preventDefault(); - надо так
Спасибо за комменты и багрепорты! Это в firefox event нужно указывать отдельно, не знал, уже поправил. Я chrome пользуюсь, в лисе не тестировал еще, а зря... Попробуйте отредактировать ваши ответы теперь, пожалуйста, сделайте один из двух.
Насчет кнопки комментировать, перенесу вниз, обязательно!
И, еще раз спасибо!
Пожалуйста,
на самом деле если вы обращаетесь к чему то это надо указать)
http://api.jquery.com/category/events/event-object/ - конкретно про event
ну и судя по всему, вы не пользуетесь IDE, там такие ошибки исключены.