WordPress怎样设置一个链接,跳转到随机文章啊?

先给个思路,首先获取所有想被调用的文章(一般只要调出文章的id即可),将这些文章写入一个数组,然后写一个随机调用方法,从数组中随即调用文章id即可。

但是wordpress有随机调用文章的方法,那就好办了。

先上随机读取文章的代码:

<?php
$randargs = array(
‘ignore_sticky_posts’ => 1 ,//取消文章置顶 如果不加这一行,输出的文章将包括设置的置顶文章
‘showposts’ => 10,//文章数量 -1是展示所有文章
‘orderby’ => ‘rand’ //随机排序

);
query_posts($randargs );
while ( have_posts() ) : the_post(); ?>
<div class=”TopTitle”><a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>”><?php the_title(); ?></a></div>
<?php
endwhile;
wp_reset_query(); ?>

以上意思就是随机从数据库读取十篇文章,然后输出,把’showposts’ => 10改成’showposts’ => 1 就是随机读取一篇文章,找到门道没?只要我们获取这篇随机文章的href,是不是就可以解决问题了?好,我们把他封装成方法:

function getRandHref() {

$randUrl = “”;

$randargs = array(

‘ignore_sticky_posts’ => 1,

‘showposts’ => 1,

‘orderby’ => ‘rand’

);

query_posts($randargs);

while (have_posts()):

the_post();

$randUrl=get_permalink();

endwhile;

wp_reset_query();

return $randUrl;

}

这段代码加在functions.php里,然后在你想点击的那个链接里调用,<a href=”<?php echo getRandHref(); ?>”>点击随机跳转文章</a>

但是这段代码相对低效,因为他隐形的调用了太多wordpress的后台方法,我们可以直接操作数据库。​

function getRandHref() {

global $wpdb;

$randUrl = “”;

$sql = “SELECT ID FROM $wpdb->posts WHERE post_status = ‘publish’ “;

$sql .= “AND post_title != ” “;

$sql .= “AND post_type = ‘post’ “;

$sql .= “ORDER BY RAND() LIMIT 0 , 1 “;

$randposts = $wpdb->get_results($sql);

$output = ”;

foreach ($randposts as $randpost) {

$randUrl = get_permalink($randpost->ID);

}

return $randUrl;

}

未经允许不得转载:前端撸码笔记 » WordPress怎样设置一个链接,跳转到随机文章啊?

上一篇:

下一篇: