Сделал небольшой аякс наворот. Типа выпдающее меню с рубриками. После выбора рубрики без перезагрузки страницы открываются последние новсти из данной рубрики. Сам аякс-код выглядит так
<script type="text/javascript">
function showNews(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","<?php bloginfo('stylesheet_directory'); ?>/getnews.php?q="+str,true);
xmlhttp.send();
}
</script>
А в файле темы getnews.php лежит простой цикл, в который подставляетя преданный через GET номер рубрики.
Все хорошо, только почему при такои использовании функции типа get_post и вообще все функции цикла якобы не существуют!
Насколько я понял, при использовании аякса надо делать какие-то хуки-хаки, но я не понимаю принципа их работы и сам разобраться не смог, Может кто-тоо шарит? 🙂
Думаете, достаточно положить файл в директорию Темы, чтобы движок догадался, что ему надо работать с этим файлом? Ага, щаз. Либо подключайте движок через require( ‘../../../../wp-load.php’ ), либо создавайте якобы страницу, цепляйте ей в качестве шаблона свой скрипт (хедеры/футеры, разумеется, там не нужны) и ее вызывайте аяксом.
1. Там четко указано <?php bloginfo(‘stylesheet_directory’); ?>/getnews.php
2. Работает. Проверял на простом выводже текста. Проблемы начались когда попробовал использовать ВП-функции
Перечитайте еще раз, что я написал.
Воооооооот блииииин!
А я уже сделал по-другому.
Отсылку запроса переписал на
А в функции добавил
И работает! Правда, там после всего полученного контента зачем-то нолик вываливается (намекает наверное что в JS таким полным нулям как я делать нечего 🙂 ), поэтому завтра еще попробую вернутся к первоначальному способу. используя ваши подсказки. Спасибо!
Посмотрите в Кодексе, там есть здоровенная статья про использование Аякса. Я не читал 🙂