2017-07-30 74 views
-5

有人可以向我解释这段代码究竟干了什么吗?我特别对'额外职位类'部分感到困惑。我试图达到的唯一目标是每4个班级都有一个额外的班级。我需要一些关于此代码的帮助

global $product, $woocommerce_loop; 

$PHT_shopID = get_option('woocommerce_shop_page_id'); 
$PHT_shopID = get_permalink($PHT_shopID); 

// Store loop count we're currently on 
if (empty($woocommerce_loop['loop'])) { 
    $woocommerce_loop['loop'] = 0; 
} 

// Store column count for displaying the grid 
if (empty($woocommerce_loop['columns'])) { 
    $woocommerce_loop['columns'] = apply_filters('loop_shop_columns', 4); 
} 

// Ensure visibility 
if (!$product || !$product->is_visible()) { 
    return; 
} 

// Increase loop count 
$woocommerce_loop['loop']++; 

// Extra post classes 
$PHTclasses = array(); 
if (0 === ($woocommerce_loop['loop']) % $woocommerce_loop['columns'] || 1 === $woocommerce_loop['columns']) 
    $PHTclasses[] = 'first'; 
if (0 === ($woocommerce_loop['loop']) % $woocommerce_loop['columns']) 
    $PHTclasses[] = 'last'; 

    $PHTclasses[] = 'primary-product-block'; 
?> 
+2

这是什么部分让你感到困惑? – Carcigenicate

+0

当这些课程获得一个额外的课@Carcigenicate – Bokdem

+4

我投票结束这个问题作为题外话,因为[so]不是用于解释什么代码 –

回答

1

我添加了一些意见,以你的IFS来解释他们

// Extra post classes 
$PHTclasses = array(); 

// if iterator is evenly divisible by # columns, or if there is only one column, add "first" 
if (0 === ($woocommerce_loop['loop']) % $woocommerce_loop['columns'] || 1 === $woocommerce_loop['columns']) 
    $PHTclasses[] = 'first'; 

// if iterator is evenly divisible by # columns, add "last" 
if (0 === ($woocommerce_loop['loop']) % $woocommerce_loop['columns']) 
    $PHTclasses[] = 'last'; 

因此,似乎合乎逻辑的,如果块类似再添:

// if iterator is evenly divisible by 4 
if (0 === ($woocommerce_loop['loop']) % 4) 
    $PHTclasses[] = 'mynewclass'; 

注意,模运算%返回除法运算的其余部分,所以如果它正在工作但它没有得到“正确”的列集尝试将0更改为123

+0

非常感谢,这个解释正是我所期待的。剩下的%对我来说是新的东西,我想这只是我必须习惯的。 – Bokdem