过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-1-10 09:57:40 | 顯示全部樓層 |閱讀模式
本帖最後由 dxszzcylm 於 2009-1-31 23:40 編輯 . D1 n7 l" s. `$ P

+ P* w1 U: ~, ?+ z# N2.避免在多循環中出現重複文章; F& w, F) O5 @+ M

; f5 G& k4 S6 n' C# h6 b- i! o問題:由於「雜誌型」主題的流行,現在很多WordPressy用戶在他們的首頁上都使用了多個循環,因此他們也迫切需要在第二個循環上避免出現重複文章。
' J$ d7 @1 E: i! W5 G8 R3 q" W解決方案:使用PHP數組就能輕鬆解決這一問題
- z( y" a3 i7 _% L創建一個PHP數組,並把第一個循環的所有文章ID放在其中
9 f+ B; P! `& d5 _<h2>Loop n°1</h2>
. T6 J, ~* n/ J7 F5 _<?php: j1 i6 I7 s+ \5 [
$ids = array();9 R7 g2 I3 f5 ?: w/ y
while (have_posts()) : the_post();+ l8 g9 E1 G' D
the_title();) |3 u7 S1 V( j% \- j
?>. M& d5 r, ]2 z, G3 z. T
<br />! r4 `. n* {! F0 p  |4 F
<?php $ids[]= $post->ID;
% V8 @0 s; L# b% T) ]# N0 y. p; {endwhile; ?>
3 F. F# e$ }% N* z1 P8 I  H2 D對於第二個循環:使用PHP函數in_array()來檢查$ids數組中是否包含了某個文章ID。如果這個文章ID沒有包含在此數組中,意味著第一個循環中沒有此篇文章,那麼系統就可以顯示它了。
5 I( c* v4 |# N5 L<h2>Loop n°2</h2>
( z+ m* X; E1 W1 H  D2 f<?php) d& B- t. ]( {0 Z: ^1 c
query_posts("showposts=50");
% v. S. w7 `* E! T* c! c& V& ^while (have_posts()) : the_post();; ~# Q9 v* ^$ Q/ M, x6 i) r
if (!in_array($post->ID, $ids)) {
' Z# q$ t9 h  j3 ~& t$ W7 Mthe_title();?>7 v0 N. P  |' Q% C% J
<br />
9 S; Q( X+ r  `9 J<?php }
5 H/ w2 ]. A$ F' k0 fendwhile; ?>. y# H5 r) Y4 E+ v
) k4 W! B/ n- b& s% s
代碼說明:執行第一個循環時,其中的所有文章ID都會被放到一個數組變量中。因此,第二個循環執行時,我們只要到這個數組中檢查當前的文章ID是否已顯示在第一個循環中就可以了。

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

过期高净值品牌域名预定抢注

點基

GMT+8, 2026-7-12 12:52

By DZ X3.5

小黑屋

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