Задача для сильных специалистов по API вордпресс. Глюк с WP_Query
Привет всем, кто разбирается в WP_Query!
Я только начал работать с API вордпресса, поэтому пока не смог решить проблему.
Почему приведенный код работает правильно в шаблоне index.php, т.е. выводит три случайных товара под слайдером на главной https://yadi.sk/i/6ynjEomp33YMeu, но не работает в файле functions.php?
$args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'product_cat' => 'na-glavnuyu', 'orderby' => 'rand' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();?>
....
Этот код ни я писал!
Он должен правильно выводить товары из категории 'product_cat' => 'na-glavnuyu', но выводит товары из любых категорий.
Этот же код должен выполняться при обращении по адресу http://avista-optica.ru/?show_rand_products&t=12345
Обращение на него идет через аякс, и полученные результаты записываются в блок div#rand-products на главной https://yadi.sk/i/6ynjEomp33YMeu
$.ajax
(
{
url: "/?show_rand_products",
cache: false
}
).done
(
function( html )
{
$("#rand-products").html(html);
}
);
Это нужно, чтобы блоки из 3-х товаров на главной (под слайдером) отображаться случайные товары даже при включенном кэше!
Если загружать эти блоки сразу в тело документа без аякса, то случайного отображения товаров не будет, т.к. главная страница будет браться из кэша.
Пока не знаю, как более грамотно работать с аяксом в вордпрессе, поэтому сделал в файле functions.php вот так
if(isset($_GET['show_rand_products'])){show_rand_products(); exit;};
Т.е. при запросе http://avista-optica.ru/?show_rand_products&t=12345 с помощью функции show_rand_products выводим нужные товары, и сразу выходим.
Полный код функции show_rand_products() тут http://codepad.org/Y7F7wTrf