Получить все идентификаторы продуктов Woocommerce в массиве - PullRequest
0 голосов
/ 08 сентября 2018

Как получить идентификаторы всех продуктов в одном массиве?

Вывод должен быть простым массивом, содержащим несколько чисел, не более того.

Мне не рекомендуется использовать query_posts(), поэтому я бы предпочел решение, не использующее эту функцию.

1 Ответ

0 голосов
/ 08 сентября 2018

Существует несколько способов получить все идентификаторы продуктов в массиве:

1) Использование Woocommerce WC_Product_Query:

$ids = wc_get_products( array( 'return' => 'ids', 'limit' => -1 ) );

2) Использование Wordpress WP_Query (включая идентификаторы вариантов продукта) ,

$ids = get_posts( array(
  'posts_per_page' => -1,
  'post_type' => array('product','product_variation'),
  'fields' => 'ids',
) );

3) Использование WPDB (запрос SQL) (включая IDS вариации продукта) :

global $wpdb;
$ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->prefix}posts WHERE post_type IN ('product','product_variation')");

В двух последних способах вы можете удалить 'product_variation' тип записи, если вы этого не хотите.

...