本文最后更新于2022年7月10日,已超过 1 年没有更新,如果文章内容失效,请 反馈 给我们,谢谢!
很小但很实用的一个小功能详情见本站随便看看。其实就是个随机抽取表中一条数据。
实现方法:将以下代码加入到主题目录中的“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' );
使用方法
访问你网站的域名/?random即可看到效果,如果要在导航菜单现实的话,在后台新建一个自定义URL菜单即可。当然这只是一个例子具体使用方法灵活应用,也可以自己建一个PHP文件把代码复件进去调用也是可以的。