Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

3 года назад
Осман Бекиров
37 лет, Украина
9 лет в сервисе
Был онлайн 4 месяца назад
3 года назад

Привет всем, кто разбирается в 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();?>
....
<?php endwhile; ?>

Этот код ни я писал!

Он должен правильно выводить товары из категории  'product_cat' => 'na-glavnuyu', но выводит товары из любых категорий.

Этот же код должен выполняться при обращении по адресу http://avista-optica.ru/?show_rand_products&amp;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&amp;t=12345  с помощью функции show_rand_products выводим нужные товары, и сразу выходим.

Полный код функции show_rand_products() тут http://codepad.org/Y7F7wTrf

  1. Прием заявок
  2. Выбор исполнителя
  3. Выполнение заказа
  4. Обмен отзывами
  • Рекламное место свободно
    37 дней за $13
  • Рекламное место свободно
    37 дней за $13

Нет заявок

Другие заказы в категории «Системы управления (CMS)»

Здесь заказчик и фрилансеры могут обсуждать заказ до начала его выполнения.
Фрилансеры могут участвовать в обсуждении только после подачи заявки.
Здесь заказчик будет контролировать выполнение заказа и общаться с исполнителем.
Доступ к этому разделу имеют только заказчик и выбранный исполнитель.
Все материалы этого раздела закрыты от поисковых систем.