ziyouhua 发表于 2017-12-1 21:23:58

四种实现wordpress不用插件调用随机文章的 方法

方法一:代码最简单的方法在需要显示的地方直接调用如下代码(张自然现在就用这种方法,经张自然修改后,兼容inove系列主题<li class="widget widget_numberposts">
<h3>随遍看看吧</h3>
<ul>
<?php $rand_posts = get_posts('numberposts=8&orderby=rand');
foreach( $rand_posts as $post ) : ?>
<li>
<a target="_blank" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>这个方法虽然简单,但用到了get_posts,如果将代码放在子页模板里,在他之后的代码,比如如果在后面同时调用了当前文章的评论,那评论内容很可能,出现的是最后一个随机到的文章的评论,而非当前文章的评论。
方法二:在随机文章中显示标题和文章摘要在需要显示的地方直接调用如下代码
<?php
query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 1));
if (have_posts()) :
while (have_posts()) : the_post();
the_title(); //这行去掉就不显示标题
the_excerpt(); //去掉这个就不显示摘要了
endwhile;
endif; ?>方法三:用query_posts生成随机文章列表在需要显示的地方直接调用如下代码<?php
query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 2));
if (have_posts()) :
while (have_posts()) : the_post();?>
<a href=”<?php the_permalink() ?>”
        rel=”bookmark”
        title=<?php the_title(); ?>”><?php the_title(); ?></a>
        <?php comments_number(”, ‘(1)’, ‘(%)’); ?>
<?php endwhile;endif; ?>方法四:在function.php中加入如下代码在function.php中加入如下代码/**
* 随机文章
*/
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;
}
在需要显示的地方调用如下代码
<div>
        <h3>随便找点看看!</h3>
        <ul>
                <?php random_posts(); ?>
        </ul>
</div><!-- 随机文章 -->


东闯飞鱼 发表于 2017-12-2 17:06:03

技术类贴子

Toogle 发表于 2020-9-26 22:21:23

楼主应该给个demo或效果截图

谢谢!
页: [1]
查看完整版本: 四种实现wordpress不用插件调用随机文章的 方法