Как получить все продукты woocommerce из базы данных, используя php

Я пытаюсь получить все продукты woocommerce из базы данных, используя php .. Но это не дает мне список всех продуктов

  <select Name='choose'>
  <?php
  $args = array( 'post_type' => 'product' ,'posts_per_page' => 100);
  $loop = new WP_Query( $args );
  while ( $loop->have_posts() ) : 
      $loop->the_post();
      echo '<option selected value="'.the_title().'</option>';
  endwhile;
  ?>
</select>

кто-нибудь, пожалуйста, скажите мне, как я могу получить все продукты woo commerce

благодаря

php,wordpress,woocommerce,

1

Ответов: 2


1

Ваш код отлично работает на моей машине, но, похоже, это противоречит вашему предыдущему запросу wp. Вы также можете попробовать получить весь этот продукт.

<select Name='choose'>
<?php
$args = array( 'post_type' => 'product' ,'posts_per_page' => 100);
$products = get_posts( $args );
foreach( $products as $product ) : 
  echo '<option selected value="'.$product->post_title.'</option>';
endforeach;
?>
</select>

1

Чтобы получить один продукт на странице single.php, вы можете использовать код, который я уже предложил здесь. См. Здесь:

https://wordpress.stackexchange.com/questions/240653/how-to-query-single-product-in-woocommerce/240726#240726

Чтобы получить все продукты, которые у вас есть в вашей БД, вы можете выполнить следующие шаги.

Вы также можете получить продукты Woo-Commerce на основе WP_Queryтак, чтобы они также сохранялись только в wp_postsтаблице. Чтобы мы могли немного изменить тип сообщения, чтобы заставить WP_Queryработать.

Шаг первый: сначала мы увидим параметры, которые мы должны передать для $ params = array ( 'posts_per_page' => 5 , 'post_type' => 'product' ); ,

<?php
$params = array(
        'posts_per_page' => 5, 
        'post_type' => 'product'
);
$wc_query = new WP_Query($params); 
?>
<?php if ($wc_query->have_posts()) :  ?>
<?php while ($wc_query->have_posts()) : $wc_query->the_post();  ?>
<?php the_title(); //Prints the title over Here ?>
<?php //You can add what ever you need from the loop over here ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
<p>
     <?php _e( 'No Products' );  ?>
</p>
<?php endif; ?>

Примечание. Как вы можете видеть, все, что мы сделали, добавляет переменную post_type в массив и устанавливает ее значение в «продукт»; запрос теперь будет искать продукты WooCommerce вместо сообщений.

Шаг второй: после этого мы должны работать с той же структурой, что и обычный WP_Query.

WP_Query

Пояснения

  • Создается массив параметров для работы WP_Query; чтобы начать с ita € ™ s только основные должности, но, добавив больше специфики к этим параметрам, мы можем добиться разных результатов для наших запросов.
  • WP_Query используется для запроса параметров, созданных в первой строке.
  • Запрос проверяется, чтобы увидеть, вернули ли он какие-либо результаты.
  • Если есть результаты, то мы перебираем их:
    • Сначала установите глобальную переменную $post, которая гарантирует, что следующая функция будет работать.
    • Во-вторых, установка the_title()переменной, которая отвечает за отображение названия продукта.
  • Затем, когда сообщения отображаются, мы возвращаем переменную $ post в ее исходное состояние с помощью wp_reset_postdataфункции.

Используя эту ссылку, я изучил, как запрашивать WooCommerce Products с помощью WP_Query, и я поделился здесь, чтобы все могли привыкнуть к этим сообщениям.

Счастливое кодирование :)

PHP, WordPress, WooCommerce,
Похожие вопросы