嘿伙計們,我下面有這段代碼,它在 div 中進行 3 次迭代后包裝專案,但是,我對如何計算該 div 中的專案感到困惑,因為我將其稱為我的自定義類的條件。
所以對于可視化,它應該是這樣的
projectrow projectitemcount-3
- 專案_專案
- 專案_專案
- 專案_專案
projectrow projectitemcount-3
- 專案_專案
- 專案_專案
- 專案_專案
projectrow projectitemcount-2
- 專案_專案
- 專案_專案
我該如何處理?
這是我到目前為止提出的
if( ($i % 3) == 0 ) { $griditemcounter = 1; }
// If is the first post, third post etc.
( ( $i % 3 ) == 0 ) ? $html .= '<div hljs-variable">$projectCounter.' grid-'.( ( $griditemcounter % 2 ) == 0 ? 'second' : 'first' ).'">' : $html .= '';
$html .= '<div hljs-variable">$griditemcounter.'" style="background-image:url('.( $url ? $url : 'https://via.placeholder.com/940x1260').') ">';
$html .= '<a href="'.get_the_permalink().'">';
$html .= '<div ><img src="'.( $url ? $url : 'https://via.placeholder.com/768x375').'" alt="每 3 次迭代后包裝 Div 并計算里面的每個 div"/></div>';
$html .= '<div >';
$html .= '<h3>'.get_the_title().'</h3>';
$terms = get_the_terms( get_the_ID(), $taxonomy );
foreach($terms as $term) {
$html .= '<p>'. $term->name. '</p>';
}
$html .= '</div>';
$html .= '</a>';
$html .= '</div>';
( $i == ( $post_count - 1 ) || ( $i % 3 ) == 0 ) ? $html .= '</div>' : $html .= '';
$griditemcounter ;
uj5u.com熱心網友回復:
我會添加一個名為 Count 或 Tracker 的變數,并在此回圈之外將其設定為 1。一旦您的代碼迭代一次并完成執行此操作的程序:
projectrow projectitemcount-(在此處添加變數)
- 專案_專案
- 專案_專案
然后您可以在回圈外向變數添加一個。這樣,當回圈再次運行時,它會將 2 添加到專案計數上并將其添加到名稱上。
uj5u.com熱心網友回復:
事先算一下:這里有 8 個專案,因此整數除以 3,得到 2,再次乘以 3,得到 6 - 這是您將放入“完整”div 中的元素數,其中包含每件3件。
因此,只要您的回圈計數器變數 $i 小于 6,您就會輸出 3 作為您的類后綴。
之后,對于最后一個 div,您輸出 8 模 3,在本例中也是 2,作為后綴 - 即將進入最后一個容器的剩余元素的數量。
說明原理的快速和骯臟的例子:
$data = range('A', 'H'); // array of fake data
$limit = 3;
$numberFull = floor(count($data) / $limit) * $limit;
$remainder = count($data) % $limit;
for($i=0, $l=count($data); $i<$l; $i) {
echo $data[$i], ' - ',
($i % $limit == 0 ? ($i < $numberFull ? $limit : $remainder) : ''), "\n";
}
生成以下輸出:
A - 3
B -
C -
D - 3
E -
F -
G - 2
H -
uj5u.com熱心網友回復:
我真的不知道你的專案專案的結構,但我會假設它只是一個簡單的陣列,如:
$items = [
['name' => 'Project 1'],
['name' => 'Project 2'],
['name' => 'Project 3'],
['name' => 'Project 4'],
['name' => 'Project 5'],
['name' => 'Project 6'],
['name' => 'Project 7'],
['name' => 'Project 8'],
];
如果你有上面的結構,你可以array_chunk得到最多 3 個專案的包,然后迭代這些包來處理你的顯示:
<?php
$itemsChunks = array_chunk($items, 3);
?>
<?php foreach($itemsChunks as $itemsChunk): ?>
<div class="project_row projectcount-<?= count($itemsChunk); ?>">
<?php foreach($itemsChunk as $item): ?>
<p><?= $item['name']; ?></p>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
然后輸出:
<div class="project_row projectcount-3">
<p>Project 1</p>
<p>Project 2</p>
<p>Project 3</p>
</div>
<div class="project_row projectcount-3">
<p>Project 4</p>
<p>Project 5</p>
<p>Project 6</p>
</div>
<div class="project_row projectcount-2">
<p>Project 7</p>
<p>Project 8</p>
</div>
你可以上網試試!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/355210.html
