WordPress获取随机文章的方法

31次阅读
2024年09月07日 09:00:19

共计 1877 个字符,预计需要花费 5 分钟才能阅读完成。

在使用wordpress建站过程中,为了使得整个网站的页面更加丰富,或者使网站具有更强的用户粘度,我们通常会需要在页面展示一些随机文章,这样也可以使得文章的pv得到提升。

wordpress获取随机文章方法无法两种:

  • 一、使用插件(例如:Random Pages Widget);
  • 二、自己写代码,本人比较推崇自己写代码,大家都知道插件过多必然影响到网站得性能。

方法一:自己编写代码

1、在主题functions.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 class="right">
	<h3>我猜你喜欢</h3>
	<ul>
		<?php random_posts(); ?>
	</ul>
</div><!-- 随机文章 -->

方法二:代码最简单的方法

在需要显示随机文章地方添加如下代码:

<ul>
<?php $rand_posts = get_posts('numberposts=5&orderby=rand');
foreach( $rand_posts as $post ) : ?>
   <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
   </li>
<?php endforeach; ?>
</ul>

这个方法虽然简单,但用到了get_posts,如果将代码放在子页模板里,在它之后的代码,比如如果在后面同时调用了当前文章的评论,那评论内容很可能,出现的是最后一个随机到的文章的评论,而非当前文章的评论。

方法三:用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>&nbsp;
	<?php comments_number(", '(1)', '(%)'); ?>
<?php endwhile;endif; ?>

方法四:在随机文章中显示标题和文章摘要

在需要显示随机文章地方添加如下代码:

<?php
query_posts(array('orderby' => 'rand', 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
the_title(); //这行去掉就不显示标题
the_excerpt(); //去掉这个就不显示摘要了
endwhile;
endif; 
?>

方法总结:

除了我再用的第一种方法,其它三种方法中都使用到了,get_posts、the_post等方法,这些方法破坏页面中记录的当前文章的信息,如果使用在页面的最后部分,影响不大,如果在调用的代码后面还有评论等内容,则会导致评论内容调用的是随机到的最后一篇文章的评论。

参考:不使用插件显示WordPress随机文章的方法

正文完
 0
鹿泽
版权声明:本站原创文章,本文由 鹿泽 于 2024年9月7日 09:00:19 发表,共计 1877 字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
最新文章
在表格中使用谷歌翻译函数公式批量翻译

在表格中使用谷歌翻译函数公式批量翻译

不用写VBA,在Excel或WPS表格中,使用谷歌翻译函数GoogleTranslate(),写写公式就可以快...
需求与满足度的相关提高权重算法原理

需求与满足度的相关提高权重算法原理

网站权重是什么,权重就代表一个网站的得分级别,权重越高排名能力就越强,同时可获得的关键词数量就越多。比如大家经...
seo绩效考核指标标准是什么?

seo绩效考核指标标准是什么?

优化人员的seo绩效考核标准是比较难制定的,在于很多地方无法衡量,尤其是外包公司,除了要做客户的运营之外,还要...
seo企业优化顾问如何针对网站做SEO分析?

seo企业优化顾问如何针对网站做SEO分析?

不过分的说,分析网站几乎每一个SEO站长都必须掌握的技能,因为只有学会分析网站,才能找出细微的问题,才能有所成...
网站怎么优化排名?一些平时积累的SEO收录知识总结

网站怎么优化排名?一些平时积累的SEO收录知识总结

经常有站长在优化网站的过程中不知所措,本人把一些平时积累的SEO收录知识总结成相关文章整理成笔记分享给大家,希...