|
方法一:代码最简单的方法 在需要显示的地方直接调用如下代码(张自然现在就用这种方法,经张自然修改后,兼容inove系列主题 - <li class="widget widget_numberposts">
) o+ t4 G/ }2 ]* m5 A+ Z6 a - <h3>随遍看看吧</h3>
* w5 @- [* S7 x7 t6 P - <ul>
. l( s! L u0 p5 a, V. N - <?php $rand_posts = get_posts('numberposts=8&orderby=rand');' g3 P9 t: e( R s/ r* z
- foreach( $rand_posts as $post ) : ?>& O9 c; w" R2 q! }. c' p8 Q4 m
- <li>. B3 K- s6 O$ [ Y
- <a target="_blank" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
; _! @7 s# b8 {; a% i - </li>
' I+ y6 P- k! y6 U/ z - <?php endforeach; ?>/ l1 Y* e3 y4 G& ^: c
- </ul>
复制代码这个方法虽然简单,但用到了get_posts,如果将代码放在子页模板里,在他之后的代码,比如如果在后面同时调用了当前文章的评论,那评论内容很可能,出现的是最后一个随机到的文章的评论,而非当前文章的评论。 ! P6 C8 M5 t4 a' r
方法二:在随机文章中显示标题和文章摘要在需要显示的地方直接调用如下代码# W1 H. z3 ?( D" |6 Y2 z
- <?php% l4 l5 \! ^5 K6 A
- query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 1));. ]( ^9 o2 g+ g& H) [2 z
- if (have_posts()) :! Q) A N' Q* t
- while (have_posts()) : the_post();
. u9 h% K3 e/ T. C( `6 N - the_title(); //这行去掉就不显示标题2 a& Q) U2 x$ a9 C2 U3 r
- the_excerpt(); //去掉这个就不显示摘要了/ E7 H4 n) f# T% `9 J
- endwhile;
8 D" b: o9 ]2 R. @: @" k - endif; ?>
复制代码 方法三:用query_posts生成随机文章列表在需要显示的地方直接调用如下代码 - <?php% R9 s6 h1 n8 p' u
- query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 2));' D* C3 `) _6 I1 |1 ~
- if (have_posts()) : b& G4 R. D3 n0 I) s
- while (have_posts()) : the_post();?>$ T* }1 D. B4 M5 K
- <a href=”<?php the_permalink() ?>”- b& U, z, g3 d1 f* c5 a* L
- rel=”bookmark”
6 d* a3 [; H6 o1 x6 p+ D1 y - title=<?php the_title(); ?>”><?php the_title(); ?></a>
6 X9 r3 y; b) \4 R: n& P0 S. P9 p. } - <?php comments_number(”, ‘(1)’, ‘(%)’); ?>
; K' L5 B$ Y" `' s, V. I - <?php endwhile;endif; ?>
复制代码 方法四:在function.php中加入如下代码在function.php中加入如下代码 - /**; }/ e0 x# x: M6 p2 p2 m6 a# `
- * 随机文章2 u. x+ U- I$ Z0 K4 e/ ^) ^
- */* V7 ^3 x5 z8 `- a& J
- function random_posts($posts_num=5,$before='<li>',$after='</li>'){9 G8 c: F/ a1 U) v; y
- global $wpdb;$ n2 ?+ z7 i4 q8 M
- $sql = "SELECT ID, post_title,guid
0 _# x$ v. G2 q( |5 Q - FROM $wpdb->posts2 A2 H0 w* f# b/ B1 K% ^
- WHERE post_status = 'publish' ";
/ V# C5 ^4 w. T& {0 D6 B. I - $sql .= "AND post_title != '' ";
5 w, M( h) J3 N( ^; o$ ] - $sql .= "AND post_password ='' ";- |! v7 Y' A" i5 |2 v
- $sql .= "AND post_type = 'post' ";
4 r9 _9 y3 p& ? - $sql .= "ORDER BY RAND() LIMIT 0 , $posts_num ";
1 \% z) B+ }+ F$ s - $randposts = $wpdb->get_results($sql);
- D; ` q- ^* N9 z$ o: s - $output = '';
$ X; T! g8 U; P' ~' { ^& X5 { - foreach ($randposts as $randpost) {
a" F3 P" k+ e7 [! Q7 S - $post_title = stripslashes($randpost->post_title);8 ^/ Q2 S' V# r
- $permalink = get_permalink($randpost->ID);- u! R) S7 a, S3 M2 `
- $output .= $before.'<a href="'; o% \. w2 U4 i% Y
- . $permalink . '" rel="bookmark" title="';- s- Y* K3 H: O# K3 e8 k
- $output .= $post_title . '">' . $post_title . '</a>';( S' i- L5 @6 m3 g
- $output .= $after;3 s; w0 S' ] g; k9 `, Q. Z7 }
- }
8 [% C! P/ h* p1 x% G8 P. K' n - echo $output;
$ x9 S5 e5 t0 Z3 p1 [ - }0 u$ O) K# B# n4 A% q- e
- 在需要显示的地方调用如下代码
: f0 d7 [, {' A1 T. O$ F - <div>
( }5 w& }* ^0 d! I; f: N - <h3>随便找点看看!</h3>
( K$ t& C- ?, g J* d8 l9 b - <ul>
# p2 X3 \: o! x: B' y) R - <?php random_posts(); ?>1 M. o6 m. u2 \
- </ul>
+ h$ t( G% g6 \$ I8 A% ] - </div><!-- 随机文章 -->
复制代码
9 v3 N/ _" r' U$ R, O: `, u2 x( F/ E8 g7 K) j
1 s1 U7 S+ p7 n! u! U
|