WordPress首页日志随机显示
日期:
标签:WordPress教程
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务: 点此联系我
打开WordPress主题目录,打开index.php或home.php,搜索代码:
while (have_posts()) :
将其改成:
query_posts('orderby=rand');while (have_posts()) :
接着将
<?php endwhile; ?>
改成:
<?php endwhile;wp_reset_query(); ?>
注意:以上方法会跟wp-pagenavi插件发生冲突,导致无法翻页,请将以上方法中的
query_posts('orderby=rand'); while (have_posts()) :
改成:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'orderby'=>rand,
'paged'=>$paged,
);
query_posts($args);
while (have_posts()) :
使用WordPress函数query_posts,可以控制文章的输出方式,关于该函数详细用法,详见WordPress官方文档:http://codex.wordpress.org/Function_Reference/query_posts
-- 完 --
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/wordpress-home-post-rand-show.html
一般人肯定都是放sidebar,首页要是这么改那世界就乱套了。
呵呵
这里只提供方法,并不是一定要用!
但是这个功能,肯定是有人需要的。
@Ludou 你说的还真对 我还真是需要这个功能哈 谢谢
做优化的可以试试看,最好是让这个功能在侧边栏进行随机调用,这样就相当于是更新了。
@南京seo 想要在侧边栏调用随机文章,可以使用以下代码:
<h3>随机文章</h3>
<ul>
<?php
$posts = get_posts('numberposts=10&orderby=rand');
foreach($posts as $post) {
setup_postdata($post);
echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
$post = $posts[0];
?>
</ul>
@Ludou 你好,我就是用这个方法,怎么随机文章不显示,请指导下:
谢谢!
@only博客 请确定你修改的是sidebar.php ,并且是按照以上代码写的。
@only博客 我想学习你那样,在网站的右侧面新建了个文本,代码放进去不行,我想问下,我想放在网站右侧面,该怎么做,请指导下:
我的网站:www.ssqyxx.com
@only博客 直接在右侧面新建了文本框,填代码是不行的!因为那个文本框不支持放代码,即使放了没法执行!
要想显示随机文章,请打开你的主题目录下的sidebar.php ,并且将以上代码放到相应位置就可以了。
@Ludou 用这段代码完成的随机文章,那么问题来了。如何显示随机文章的对应分类目录名。
如:这个随机文章的标题 【分类名称】
楼主我真是太感激你了~呵呵,没经你同意给你做了个外链~别介意哈,继续关注你的BLOG~~
@heyladies 另外注意下跟wp-pagenavi插件冲突的问题!
我没成功……不知为什么,主题是autofocus
@darktoy 你要修改的是home.php不是index.php
@Ludou 额,成了。
非常感谢!
感谢分享 正好是我需要的功能
还解释的那么详细
那样子首页不就不显示最新文章了吗
@EinCy 如果你看过本文的标题,你还会觉得这是个问题吗?
首页日志随机显示,那翻页后的内页会怎么样?是按顺序的还是随机的?
@low 随机
确实需要。感谢。
能不能改成首页随机显示,后续页面不随机?
@任鸟飞 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'orderby'=>rand,
'paged'=>$paged,
);
query_posts($args);
改成:
if(!is_paged()) {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'orderby'=>rand,
'paged'=>$paged,
);
query_posts($args);
}
按照楼主的方法弄好了 不错啊
你的PHP学得好好啊,我是一直也没学进去。
刚好有这需求……可用….
只是也有个问题….
分类、关键字标籤底下的文章….也都随机了….
跟原本的类别都没有关联了….这版主有办法解决吗???
@遊戲長~丹 如果你的主题目录下没有以下文件之一:archive.php、category.php、tag.php,那么就将原来的index.php复制一份,重新命名为archive.php
然后再按文中说明修改index.php就可以了。
或者,复制一份index.php,重命名为home.php,按文中说明修改home.php
<?php
$recentPosts = new WP_Query();
$recentPosts->query('cat=4&showposts=10');
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<li> <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> <?php the_date('Y-m-d'); ?> </li>
<?php endwhile; ?>
露兜你好,我首页上用的这段显示指定分类文章,请问这段代码可以加随机显示吗?
@jieli $recentPosts->query('cat=4&showposts=10');
改成:
$recentPosts->query('cat=4&orderby=rand&showposts=10');
<?php endwhile; ?>
改成:
<?php endwhile; wp_reset_postdata(); ?>
@Ludou 感谢~ :)
太棒了
我用默认的模板,不能随机。。。奇怪了。。。
<?php $sticky = get_option('sticky_posts'); rsort( $sticky );
//query_posts( array( 'post__in' => $sticky,'orderby' => 'rand', 'caller_get_posts' => 1, 'showposts' => dopt('d_sticky_count')?dopt('d_sticky_count'):2 ) );
query_posts(
array(
'post__in' => $sticky,
'orderby' => 'rand',
'caller_get_posts' => 1,
'showposts' => dopt('d_sticky_count')?dopt('d_sticky_count'):2
)
);
while (have_posts()) : the_post();
echo '<li class="item">';
echo '<a target="_blank" href="'.get_permalink().'">';
echo '<h3>'.get_the_title().'</h3>';
echo deel_thumbnail();
echo '</a>';
echo "</li>";
endwhile;
wp_reset_query();
?>
竟然没有效果。
我只添加了一句 'orderby' => 'rand', 用来随机排序。
他会不会增加主机负担
@132413 不会
问大佬一个问题,首页文章随机的同时能不能增加一个条件?条件就是随机排序的文章都是这个月内更新的,求帮忙!
@彼铭 同文,想首页随机的同时加个条件:随机显示最近24小时内的发布