本代碼參考了網上的代碼然後組合而成,之前花了幾小時測試的,隨機是真正的隨機,不會出現某些代碼id連續的問題,在我一個80w+文章的wp站測試過,我測試過N多隨機代碼,這個是占資源最少的了,有興趣的朋友可以研究更新一下,對有大數據網站又想用隨機文章的朋友或者有用。- <ul>
0 h8 a9 a; R. V8 [! V E5 W - <?php
[- f3 w" N4 O" n/ N - global $wpdb, $post;
; a: L( ]$ {8 P$ b7 r* } - $post_output = "";
9 p$ N; C" w; n6 _" V# O3 _# C/ K4 U, j - $random_posts = "";$ r5 w! h! A' c+ q- S/ M0 k
- $sql="SELECT MAX(id),MIN(id) FROM $wpdb->posts";) j1 H$ k0 T: j2 y. r
- $result=mysql_query($sql);
, r' y- M9 f( ]( p$ T - $yi=mysql_fetch_array($result);$ ]# l& U' Q# }' Y; x( G& D/ G# G
- $idmax=$yi[0];
) s2 D. [5 g+ p; u7 q* R4 {% A+ J8 i - $idmin=$yi[1];
( S% `" N( h8 {7 b: v6 f9 \$ m0 H - $idlist=''; 0 o; I g) Q; {( O0 b; S- s* s4 I3 _
- for($i=1;$i<=20;$i++){ + ?" ?7 U0 {! C8 H
- if($i==1){ $idlist=mt_rand($idmin,$idmax); } ; o5 z8 K8 \/ ?
- else{ $idlist=$idlist.','.mt_rand($idmin,$idmax); } 3 W- t: o' u& O9 W6 x: b
- }
, @0 P' ~) \8 U s$ V - $idlist2="id,".$idlist;( h& d* Z2 m3 K; W
- $sql="select * from $wpdb->posts where id in ($idlist) order by field($idlist2) LIMIT 0,12"; # x6 w; Q6 n( G/ j
% e r A6 p( z. H- $random_posts = $wpdb->get_results($sql);
! V O1 j" {4 M! o m - $wp_rp_title= ''; 1 K' o# j k7 ~7 C& s" n& b
- foreach ( $random_posts as $random_post )
: N% D+ _+ ^# d0 P' e9 a: @; T: n - {
% G/ B1 h% g& f - $post_output.='<li>';
; {. h- K, K# ?8 s - " `1 C" r' F# i( M
- $post_output .= '<a href="'.get_permalink($random_post->ID).'" title="'.wptexturize($random_post->post_title).'" >'.wptexturize($random_post->post_title).'</a>';. a0 p( |& a' @# A4 ]. R# [
$ x& Y0 q0 o! \7 m+ X3 ~9 L- $post_output .= '</li>';
) j5 K- G+ Y3 \9 K - }
1 }% ?5 G" h6 T# N8 ^3 Z" G - , g' o+ r6 e% k* s0 I8 v2 ^
- echo $post_output;! n$ U, m2 ] ?' t! _" T
- ?>( Q9 C2 g# t- f4 q6 _3 F# K
- </ul>
複製代碼 ! a) P0 S2 _3 N4 j' ^! X0 h
|