腾讯云服务器优惠活动华纳云香港服务器

WordPress导航栏实现“手气不错”随机功能

WordPress主题推荐

前段时间,明月登楼博主建议在 boke112 导航首页加入一个可以“随机访问”热门博客的功能,其实这个就是类似谷歌首页的那个“手气不错”。不过由于 boke112 导航的博客目录关于博客的介绍比较少没什么价值,所以就改为随机访问某一篇文章,今天顺便把实现办法分享给大家。

WordPress导航栏实现“手气不错”随机功能-第1张-boke112百科(boke112.com)

我们平时所说的 WordPress 导航栏上的手气不错的按钮功能,其实就是点击一下,将会随机显示篇文章的详细内容,也就是所谓的文章页。这个功能比较合适老用户访问站点旧文章,因为这种无法预测的随机感,能给人带来一定的新鲜度,所以懿古今和 boke112 导航也跟着上线了这个功能,希望大家喜欢。

在 WordPress 导航栏上实现手气不错的按钮功能,有很多种方法,今天本站只分享最简单一种,只需要简单的两步即可,具体如下:

第一步,把以下代码放到functions.php的最后一个?>前面

//导航菜单添加手气不错按钮
function random_postlite() {
global $wpdb;
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
if ( isset( $_GET['random_cat_id'] ) ) {
$random_cat_id = (int) $_GET['random_cat_id'];
$query = "SELECT DISTINCT ID FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id AND tr.term_taxonomy_id = $random_cat_id) INNER JOIN $wpdb->term_taxonomy AS tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id AND taxonomy = 'category') WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
if ( isset( $_GET['random_post_type'] ) ) {
$post_type = preg_replace( '|[^a-z]|i', '', $_GET['random_post_type'] );
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = '$post_type' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
$random_id = $wpdb->get_var( $query );
wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'random_postlite' );

PS:代码来源于公子府

第二步,在WordPress后台》外观》菜单中添加一个链接类型的菜单,在 URL 中输入:https://www.yigujin.cn//?random(记得把本站域名改为贵站域名哦),在链接文本中输入:手气不错(或其他)。

WordPress导航栏实现“手气不错”随机功能-第2张-boke112百科(boke112.com)

至此,已经成功在 WordPress 导航栏添加手气不错的按钮功能。

2015 年 12 月 2 日更新:张戈博主提供一种更简单的代码,我们只需要把第一步的代码更改为以下代码即可:

//导航菜单添加手气不错按钮
function random_postlite() {
$loop = new WP_Query( array( 'post_type' => array(post),'orderby' => 'rand','posts_per_page' => 1 ) );
while ( $loop->have_posts() ) : $loop->the_post();
wp_redirect( get_permalink() );
endwhile;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'random_postlite' );

PS:代码来源于张戈博客

本文地址:https://boke112.com/post/2219.html

赞 (0) 打赏
版权声明:发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
香港云主机55元/年
wu