过期域名预定抢注

 找回密碼
 免费注册

WordPress的10個殺手級Hack技巧(2)

[複製鏈接]
發表於 2009-1-10 09:57:40 | 顯示全部樓層 |閱讀模式
本帖最後由 dxszzcylm 於 2009-1-31 23:40 編輯 : C  Z  ?; P! T/ s2 u, ]: \5 L2 m
' D+ q) t8 c/ T: U1 Z# W) F$ j
2.避免在多循環中出現重複文章$ B+ c, [5 V) K0 j! _6 V
: }3 G9 H1 |9 L8 {6 l7 X6 d
問題:由於「雜誌型」主題的流行,現在很多WordPressy用戶在他們的首頁上都使用了多個循環,因此他們也迫切需要在第二個循環上避免出現重複文章。
) C' Y4 f: n; q, W* s$ e解決方案:使用PHP數組就能輕鬆解決這一問題2 n- R& }- ~/ ^& S/ e* ^
創建一個PHP數組,並把第一個循環的所有文章ID放在其中( w8 X* e6 E+ j. s) f5 }
<h2>Loop n°1</h2>
1 @% o& x* L' Z6 D<?php
7 b. e& E* f: P: ^7 Y$ids = array();  E+ B& Z6 R" h  r
while (have_posts()) : the_post();
9 G  _; y$ A4 Y) @# Hthe_title();
6 a( M8 w! A8 L& r$ y?>
/ D2 ~* ~7 u' j, y1 ^8 N) i<br />
$ n1 [) R/ x0 g$ J' `$ k" X; r0 k<?php $ids[]= $post->ID;
: K4 b2 x- }# x# B9 |* Z; _1 zendwhile; ?>
; g) `# W9 A# }. h對於第二個循環:使用PHP函數in_array()來檢查$ids數組中是否包含了某個文章ID。如果這個文章ID沒有包含在此數組中,意味著第一個循環中沒有此篇文章,那麼系統就可以顯示它了。
( l, u3 ~) ^% C  A( p+ J<h2>Loop n°2</h2>+ G0 b9 Y2 A5 i8 Y* ]" F& g
<?php  J3 v$ z, Z1 [7 l6 {9 O2 p$ k
query_posts("showposts=50");
7 B, C4 S. l, l* t5 _% \while (have_posts()) : the_post();% U3 O% I) w6 X4 j4 H
if (!in_array($post->ID, $ids)) {
# C% |0 k3 [. |, Bthe_title();?>9 D- |3 i+ N4 W0 k9 o8 G9 U
<br />
5 p: l/ {: a+ O6 X$ T% O$ C3 O, d<?php }, s5 L( D2 Q/ f+ V
endwhile; ?>6 ~( T! m" w5 q. h

" G) f% G% H: P代碼說明:執行第一個循環時,其中的所有文章ID都會被放到一個數組變量中。因此,第二個循環執行時,我們只要到這個數組中檢查當前的文章ID是否已顯示在第一個循環中就可以了。

評分

參與人數 1 +2 收起 理由
dxszzcylm + 2

查看全部評分

發表於 2009-1-31 23:41:06 | 顯示全部樓層
不錯的技術文章!
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

點基跨境 數位編輯創業論壇

GMT+8, 2025-7-3 22:55

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表