不用插件调用wp随机文章的几个方法

2020-11-27 11:03发布

分享几个WordPress不用插件调用随机文章的方法,不仅增强用户粘性,而且当蜘蛛来爬你的文章的时候每次都会有变化,搜索引擎很喜欢。主要用到的是orderby rand参数,下面一起来看看吧。

  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><!-- 随机文章 -->