Отображение одного товара WooCommerce на главной странице

3 дек. 2013 г., 17:55:35
Просмотры: 32.2K
Голосов: 0

В настоящее время я изучаю PHP и способы кастомизации WordPress.

У меня есть магазин, настроенный на WordPress с использованием плагина WooCommerce. В магазине только один товар. Поскольку у меня всего один товар для продажи, я хотел бы показать его на главной странице так, чтобы полная страница товара отображалась прямо на главной странице.

Вот код, который я пытаюсь заставить работать (он размещен в файле home.php):

$prodpage = array(
'post_type' => 'product',
'posts_per_page' => 1,
'taxonomy' => 'banner',
'term' => 'banner'
);
$featured_query = new WP_Query( $prodpage );

if ($featured_query->have_posts()) :   

    while ($featured_query->have_posts()) :   

        $featured_query->the_post();  

        $product = get_product( $featured_query->product->ID );  

    // Здесь вывод информации о товаре

endwhile;  

endif;  

wp_reset_query(); // Сброс запроса

Я также пробовал использовать query_posts таким образом:

if ( is_home() ) {
query_posts( 'p=31' );
}

Хорошая новость в том, что у меня нет ошибок синтаксиса. Плохая новость в том, что я боюсь, что где-то нарушена логика, так как я получаю страницу только с шапкой и подвалом WordPress. Центральная часть, где должен отображаться товар, не показывается.

Я очень ценю любую помощь, которую вы можете предоставить! :)

5
Комментарии

Замените фигурные кавычки в ‘banner’ и других местах на обычные кавычки '.

fuxia fuxia
3 дек. 2013 г. 21:06:14

Спасибо, что заметили это!! Я убрал фигурные кавычки, как было указано. К сожалению, это не помогло отобразить информацию. :(

Miss_Scarlett80 Miss_Scarlett80
3 дек. 2013 г. 21:45:49

Следующий шаг: прочитайте эту ветку обсуждения.

fuxia fuxia
3 дек. 2013 г. 21:47:40

'term' не существует как параметр для WP_Query, следует использовать 'terms'. Кроме того, он должен быть частью 'tax_query'; параметр 'taxonomy' тоже. Но поскольку у вас есть и нужен только один товар, в этом нет смысла, вам это не нужно.

Nicolai Grossherr Nicolai Grossherr
3 дек. 2013 г. 22:42:59

Спасибо вам обоим! Сейчас изучаю запросы. Отличная информация в статье, которую вы опубликовали, toscho! Я переключался между WordPress Codex и руководством по PHP, но не был на 100% уверен в своем понимании. Ваша ссылка помогла заполнить пробел! Спасибо!

Miss_Scarlett80 Miss_Scarlett80
3 дек. 2013 г. 23:05:46
Все ответы на вопрос 1
3

Почему бы просто не использовать шорткод product_page?

В содержимом страницы:

[product_page id="31"]

В коде шаблона главной страницы:

<?php echo do_shortcode('[product_page id="31"]'); ?>
3 дек. 2013 г. 22:44:45
Комментарии

Вау! Спасибо! Я наткнулся на этот метод в поисках, но подумал (точнее, предположил), что он выведет только миниатюру и кнопку добавления в корзину. Да уж... предположения. Еще раз, спасибо! :)

Miss_Scarlett80 Miss_Scarlett80
3 дек. 2013 г. 22:50:57

шорткод [product] делает именно это :)

webaware webaware
3 дек. 2013 г. 22:52:15

Я пробовал это, но он показывал только миниатюру и кнопку добавления в корзину. Код, который вы предоставили для ручного шорткода, на самом деле отображал полную страницу товара. Интересно, если бы я просто вставил [product_page id="31"] в свою запись WordPress, отобразилась бы полная страница? Бегу тестировать!

Miss_Scarlett80 Miss_Scarlett80
3 дек. 2013 г. 23:06:53