手写代码实现wordpress的随机文章显示
本想弄个插件来的,没奈何木有时间.想弄个现成的插件功能实现,我的博客结构已经够臃肿了.各种统计各种缓存…算了还是用代码实现吧.
先科普一下知识.mysql是wordpress官方标准数据库,支持结果集的随机排序查询,一个rand函数就搞定了.
实现方法一:
改functions和siderbar,在你的主题中肯定有这两个php网页.路径 wp-content/themes/your theme dir/
在function.php中加入如下方法
function random_posts($posts_num=8,$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; }
然后在siderbar中找到你需要显示的位置.这个定位问题你可以参考 WordPress修改日记–调整主题的动态边框栏
<h3>随便找点看看!</h3> <ul> <?php random_posts(); ?> </ul>
实现方法二:
使用wordpress的内置函数功能,虽然简洁,但是可能对wp的其他功能造成影响.
在siderbar中跟上面方法一样找一个位置
<ul> <?php $rand_posts = get_posts('numberposts=8&orderby=rand'); foreach( $rand_posts as $post ) : ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; ?> </ul>
如果你还能从网上找到的其他实现方法,非插件的你可以不用看了.插件的你也不会找到这里.祝顺利
还有越来越BSwlw的code template,丑的要死要活.
分享到: | |
我的天,我必须膜拜一下。。
无法实现!
这是好用的代码,放入funtions.php就行了
表示不会。顺便做个记号!
用ftp打开你的wp主目录下的风格目录
拿去用了。谢谢你
你的网站上有这个功能
有啊,现在没挂出来就是了.