您现在的位置是:首页 > 网站制作 > WordpressWordpress
WordPress调用随机文章的五种方法
杰帅2023-09-19【Wordpress】人已围观
简介制作WordPress主题经常要调用不同的文章列表,随机文章就是调用文章列表的一种。实现调用随机文章的方式主要有两类,一种方式是直接通过插件来实现,另外一种就是使用代码实现。本文就分享五种不用插件调用随机文章的方法,主要是将排序orderby的值设置成rand参数。这种方式不仅增强用户粘性,而且当蜘蛛来爬取文章的时候每次都会有变化,搜索引擎很喜欢。
制作WordPress主题经常要调用不同的文章列表,随机文章就是调用文章列表的一种。实现调用随机文章的方式主要有两类,一种方式是直接通过插件来实现,另外一种就是使用代码实现。本文就分享五种不用插件调用随机文章的方法,主要是将排序orderby的值设置成rand参数。这种方式不仅增强用户粘性,而且当蜘蛛来爬取文章的时候每次都会有变化,搜索引擎很喜欢。
1.最直接的用法,在需要的位置放入下面的代码。
<?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生成随机文章列表
<?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; ?>
<?php
query_posts(array('orderby' => 'rand', 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
the_title(); //这行去掉就不显示标题
the_excerpt(); //去掉这个就不显示摘要了
endwhile;
endif; ?>
3.调用同分类随机文章
<?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函数
<?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定义
//随机文章
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 class="right">
<h3>随便找点看看!</h3>
<ul>
<?php random_posts(); ?>
</ul>
</div><!-- 随机文章 -->
Tags:wordpress教程 文章 随机文章
很赞哦! ()
相关文章
随机图文
-
WordPress 页面模板(Page Template)下拉列表不显示的原因及解决方法
WordPress 的自定义页面模板是一个非常强大好用的功能,使用它新建一些静态页面(Page),添加上一些数据调用的函数,再在网页上做一个导航连接到对应的页面就可以实现很多自定义的功 -
wp_reset_postdata 和 wp_reset_query 的作用与区别
什么时候使用wp_reset_query,什么时候用wp_reset_postdata? -
wordpress 上传的图片不显示的问题 base64,data:image/gif
-
wordpress发布文章HTML标签被自动过滤掉该如何处理?
wordpress发布文章时很多html标签都会自动过滤掉,造成了文章中无法添加<style></style><script></script>等标签。那么该如何如何处理呢? 解决方法一: 将wp-includes文件夹下
文章评论
本站推荐
标签云
猜你喜欢
- wordpress评论功能模板(comment.php)制作
- WordPress初学者入门教程 [16] 插件
- WordPress遇到PHP致命错误的解决办法“PHP Fatal error: Uncaught Error: Call to undefined function get_header()”
- “您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”的修复办法
- Bootstrap替换WordPress的get_search_form()搜索样式
- 谷歌优化(Google SEO)最重要的是哪几点?
- 后门程序利用盗版插件传播,感染力强成WordPress最大威胁
- WordPress 搜索结果页面添加人机验证码功能
- WordPress函数:register post type (自定义文章类型)用法和范例
- 我想做拉美市场,我该如何做西班牙语推广?