分享几个WordPress不用插件调用随机文章的方法,不仅增强用户粘性,而且当蜘蛛来爬你的文章的时候每次都会有变化,搜索引擎很喜欢。主要用到的是orderby rand参数,下面就随ytkah一起来看看吧
1、最直接的用法,在需要的位置放入下面的代码。
1
2
3
4
5
6
|
<?php $args = array ( 'numberposts' => 5, 'orderby' => 'rand' , 'post_status' => 'publish' ); $rand_posts = get_posts( $args ); foreach ( $rand_posts as $post ) : ?> <li><a href= "<?php the_permalink(); ?>" ><?php the_title(); ?></a></li> <?php endforeach ; ?> |
2、用query_posts生成随机文章列表
1
2
3
4
5
6
7
|
<?php query_posts( array ( 'orderby' => 'rand' , 'showposts' => 2)); if (have_posts()) : while (have_posts()) : the_post();?> <a href= "<?php the_permalink() ?>" rel= "bookmark" ><?php the_title(); ?></a> <?php endwhile ; ?> <?php endif ; ?> |
1
2
3
4
5
6
7
8
|
<?php query_posts( array ( 'orderby' => 'rand' , 'showposts' => 1)); if (have_posts()) : while (have_posts()) : the_post(); the_title(); //这行去掉就不显示标题 the_excerpt(); //去掉这个就不显示摘要了 endwhile ; endif ; ?> |
3、调用同分类随机文章
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php $cat = get_the_category(); foreach ( $cat as $key => $category ){ $catid = $category ->term_id; } $args = array ( 'orderby' => 'rand' , 'showposts' => 8, 'cat' => $catid ); $query_posts = new WP_Query(); $query_posts ->query( $args ); while ( $query_posts ->have_posts()) : $query_posts ->the_post(); ?> <li><a href= "<?php the_permalink(); ?>" ><?php the_title(); ?></a></li> <?php endwhile ;?> <?php wp_reset_query(); ?> |
4、用wp_query函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php $args = array ( 'post_type' => 'post' , 'showposts' => 4, 'orderby' => 'rand' , 'cat' => -36, //除了id为36的分类 ); $my_query = new WP_Query( $args ); if ( $my_query ->have_posts() ) { while ( $my_query ->have_posts()) : $my_query ->the_post(); ?> <div class = "item" > <a href= "<?php the_permalink(); ?>" class = "box" > <?php the_post_thumbnail( array (285,360) ); ?> <div class = "text" > <strong><?php the_title();?></strong> </div> </a> </div> <?php endwhile ; wp_reset_query(); } ?> |
5、主题function定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/** * 随机文章 */ function random_posts( $posts_num =5, $before = '<li>' , $after = '</li>' ){ global $wpdb ; $sql = "SELECT ID, post_title,guid FROM $wpdb ->posts WHERE post_status = 'publish' "; $sql .= "AND post_title != '' " ; $sql .= "AND post_password ='' " ; $sql .= "AND post_type = 'post' " ; $sql .= "ORDER BY RAND() LIMIT 0 , $posts_num " ; $randposts = $wpdb ->get_results( $sql ); $output = '' ; foreach ( $randposts as $randpost ) { $post_title = stripslashes ( $randpost ->post_title); $permalink = get_permalink( $randpost ->ID); $output .= $before . '<a href="' . $permalink . '" rel="bookmark" title="' ; $output .= $post_title . '">' . $post_title . '</a>' ; $output .= $after ; } echo $output ; } |
然后在想要显示随机文章的地方加入如下代码
1
2
3
4
5
6
|
<div class = "right" > <h3>随便找点看看!</h3> <ul> <?php random_posts(); ?> </ul> </div><!-- 随机文章 --> |