WordPress 文章的随机排序很容易实现,但是文章分类目录(包括自定义文章类型的分类目录)默认情况下是没有随机排序的,所以想要实现分类目录随机排序就需要自定义一个函数,具体实现如下:
将以下代码添加到当前主题的 functions.php 文件最后一个?>的前面
- //分类目录随机排序
- function boke112_get_terms() {
- // 获取所有分类 category(自定义类型的就输入相应的 taxonomy)
- $terms = get_terms('category','hide_empty=1');
- $count = count($terms);
- if ( $count > 0 ){
- shuffle($terms);
- foreach ( $terms as $term ) {
- echo '<a href="' . get_term_link( $term ) . '" target="_blank">' . $term->name . '</a>';
- }
- }
- }
然后在想要输出随机排序的分类目录处添加如下代码:
- <?php boke112_get_terms()?>
注意:
1、记得修改以上输出分类目录随机排序的样式;
2、代码中 hide_empty=1 的意思就是不显示没有文章的分类目录,想要显示没有文章的分类目录,只需要将 1 改为 0 即可;
3、category 表示文章的分类目录,如果想要实现自定义文章类型的分类目录(如 taobao),那么只需要将代码中的 category 改为 taobao 即可;
4、如果不想输出全部的分类目录,比如只想要输出 2 个随机分类目录,那么可以将代码中的 hide_empty=1 改为 hide_empty=1&number=2。
5、如果只是一个地方想要输出随机分类目录的,完全可以不用自定义函数,直接将以下代码添加到想要输出的地方:
- <?php
- $terms = get_terms('category','hide_empty=1&number=2');
- $count = count($terms);
- if ( $count > 0 ){
- shuffle($terms);
- foreach ( $terms as $term ) {
- echo '<a href="' . get_term_link( $term ) . '" target="_blank">' . $term->name . '</a>';
- }
- }
- ?>