2015-12-17 2 views
1

Этот код отображает список изображений/ссылок на продукты в соответствии с категорией. Отлично работает, но показывает слишком много результатов. Интересно, могу ли я ограничить его, чтобы показать максимум 8 случайным образом?Установка максимального количества результатов в массиве категорий товаров

В настоящее время:

<?php 

$prod_categories = get_terms('product_cat', array(
    'orderby' => 'name', 
    'order'  => 'DSC', 
    //'include'   => '39, 38, 37, 28, 26, 40', 
    'exclude'   => '32, 38', 
    'hide_empty' => 1 
)); 

foreach($prod_categories as $prod_cat) : 
    $cat_thumb_id = get_woocommerce_term_meta($prod_cat->term_id, 'thumbnail_id', true); 
    //$cat_thumb_url = wp_get_attachment_thumb_url('Full Size', $cat_thumb_id); 
    $cat_thumb_url = wp_get_attachment_url($cat_thumb_id, $size = 'full'); 
    $term_link = get_term_link($prod_cat, 'product_cat'); 

?> 

ответ

0

Per на WordPress get_terms() documentation вы можете использовать number аргумент:

Ограничение числа членов

$prod_categories = get_terms('product_cat', array(
    'orderby' => 'name', 
    'order'  => 'DSC', 
    //'include' => '39, 38, 37, 28, 26, 40', 
    'exclude' => '32, 38', 
    'hide_empty' => 1, 
    'number'  => 8 
)); 

Включить/Исключить должна быть массивами

Кроме того, в качестве побочного сведению, ваши включения/исключения параметры неверны - они должны быть массивами:

$prod_categories = get_terms('product_cat', array(
    'orderby' => 'name', 
    'order'  => 'DSC', 
    //'include' => array(39, 38, 37, 28, 26, 40), 
    'exclude' => array(32, 38), 
    'hide_empty' => 1, 
    'number'  => 8 
)); 

Случайные Термины?

И, наконец, вы указываете случайные. get_terms не поддерживает случайный порядок, так что это нужно сделать в PHP. Для того, чтобы сделать это, мы хотели бы Вытащите предел числа, а затем обработать результаты в PHP, например, так:

$prod_categories = get_terms('product_cat', array(
    'orderby' => 'name', 
    'order'  => 'DSC', 
    //'include' => '39, 38, 37, 28, 26, 40', 
    'exclude' => '32, 38', 
    'hide_empty' => 1 
)); 

// Randomize 
$prod_categories = shuffle($prod_categories); 

// Limit to 8 
$prod_categories = array_slice($prod_categories, 0, 8); 

// Now do your foreach loop... 
Смежные вопросы