专栏首页ytkah五个wordpress调用随机文章的方法

五个wordpress调用随机文章的方法

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • laravel dingo/api添加jwt-auth认证

    前面我们学了laravel dingo/api创建简单的api,这样api是开放给所有人的,如何查看和限制api的调用呢?可以用jwt-auth来验证,JSON...

    ytkah
  • wordpress调用置顶文章sticky_posts的三种方法

      有时我们在开发wordpress时需要调用置顶文章sticky_posts,怎么调用呢?几种写法,有用到query_post的,有用到WP_Query,也有...

    ytkah
  • wordpress列表页如果文章没有缩略图就显示默认图片

      有时我们在设计wordpress模板时需要考虑是否有特色图,在分类页上如果一些文章有缩略图一些没有那就有点参差不齐不美观,有没办法设置如果没有文章缩略图则自...

    ytkah
  • wordpress常用函数-随机文章获取和相关文章获取

    1、wordpress随机获取文章10篇文章,轻松实现wordpress文章的随机调用;

    wordpress建站吧
  • laravel dingo/api添加jwt-auth认证

    前面我们学了laravel dingo/api创建简单的api,这样api是开放给所有人的,如何查看和限制api的调用呢?可以用jwt-auth来验证,JSON...

    ytkah
  • WordPress 代码实现相关文章(列表模式)功能

    之前分享的相关文章代码化功能是仿无觅的图文模式,现在分享的一个是文章列表陈列模式。代码最初来自 Willin Kan,经过zwwooooo 的修改优化。不得不说...

    Jeff
  • 动画:面试必刷之二叉树中和为某一值的路径

    输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输出整数的所有路径。从树的根节点开始往下一直到叶子节点所经过的节点形成一条路径。

    乔戈里
  • SwiftUI:WeSplit项目 使用分段控件选择百分比

    现在我们要在我们的应用程序中添加第二个Picker视图,但这次我们想要的是稍微不同的东西:我们想要一个分段控件(segmented control)。这是一种特...

    韦弦zhy
  • C++异常处理实战入门NR.2:不要坚持一个函数中只包含一个返回语句

    The single-return rule can lead to unnecessarily convoluted code and the introdu...

    面向对象思考
  • 单模型可完成6项NLP任务,哈工大SCIR LTP再度升级,4.0版本面世

    LTP 的全称为「Language Technology Platform」,是哈工大社会计算与信息检索研究中心(HIT-SCIR)历时多年研发的一整套高效、高...

    机器之心

扫码关注云+社区

领取腾讯云代金券