»

WordPress 网站中如何随机调用整站的文章标签

    WordPress  
前端重定向网络安全htaccess缓存腾讯云加速爬虫CDN的问题CDN百度云加速Wp Super CacheIIS建站插件WP RocketApacheCLB浏览器防盗链windows主机身份认证网站优化查询SEO工作

可能有朋友注意到此网站侧边栏的彩色标签了。这些标签是随机调用排列的。

如何调用?

本文主要用到的函数是 get_tags( )。根据 Codex 中的介绍, get_tags( ) 主要用于获得标签信息。

 

主要包含如下参数:

 

orderby —— 默认值为'name'。可以是名称,计数或空(使用term_id)

order —— 默认值ASC。有效值还包括DESC。

hide_empty —— (布尔值)触发显示没有文章的分类。默认值为 true(隐藏空类别)。有效的值包括:1(true)和 0(false)。

exclude —— (字符)默认值是一个空字符串。若条件编号的字符串由逗号或空格界定,条件编号将从返回的数组中被删除。'include'非空时忽略'exclude'。

include —— 默认值是一个空字符串。若条件编号的字符串由逗号或空格界定,返回的数组中将包括条件编号,用分类 ID 号表示。

number —— (字符)将要返回的条件的最大数量。默认值为空。

offset —— 用以抵消条件查询的数字

fields —— 默认值为 "all",返回条件对象数组。若'fields'是'ids'或'names',分别返回整数数组或字符串数组。

slug —— 返回条件的缩略名应与该值相匹配。默认值为空字符串。

hierarchical —— 是否应包含其后代非空的条件(即使 'hide_empty'为true)。

search —— 返回的条件名称应含有'search'值,不区分大小写。默认值为空字符串。

name_like —— 返回的条件名称应以"name_like"的值为首,不区分大小写。默认值为空字符串。

pad_counts —— 变量。设为 true 时返回的值应包括条件的 'count' 对象变量总数中条件子的数量。

get —— 变量。值设为 'all' 而不是默认空字符串时,返回条件,无论其上级如何或是否为空。

child_of —— 变量。使用时应将变量值设为条件编号的整数。默认值为 0。根据已知分类法,值设为非零时,所有返回的条件都将成为该编号的条件的后代。若 $taxonomies 传递一个以上分类,'child_of' 被设为 0,因为多个分类会使条件上级不明确。

parent —— 变量,使用时应将变量值设为条件编号的整数。默认值为空字符串,与整数0含义有所不同。根据已知分类法,值为整数时,所有返回的条件都会将指定编号的条件作为上级。'parent' 变量与 'child_of' 的不同之处在于,只有在条件 X 是条件 Y 的父级,而不是祖父或者曾祖父级时,条件 X 才可以被成为条件 Y 的 'parent'(‘父级’)。

taxonomy —— (字符)返回一个分类法,这个是 wordpress3.0 版本后新添加的一个参数。返回的值包括 category(默认)和 taxonomy(一些新定义的分类名称)。

 

 

看了如上的介绍,发现没有随机排序?get_tags( ) 函数 中没有相关排序的参数,例如 orderby=rand 这样的参数设置。幸好我们可以使用 shuffle( )函数,则是一个变通的方法,可以尝试如下代码:

  1. echo '<div>'; // div 标签输出开始  
  2. $args = array('exclude' => '6 17'); // 你想排除的标签ID  
  3. $tags_list = get_tags( $args ); // 获取标签数组,空格间隔  
  4. shuffle($tags_list); // 将序列的所有元素随机排序  
  5. $count=0; // 初始计数为 0  
  6. if ($tags_list) {  
  7.     foreach($tags_list as $tag) { // 遍历数组  
  8.         $count++; // 计数开始  
  9.         // 下面是输出标签信息  
  10.         echo '<a title="' . $tag->count . '个话题" href="'.get_tag_link($tag->term_id).'" target="_blank" rel="noopener noreferrer">'.$tag->name.'(' . $tag->count . ')</a>';  
  11.         if$count >20 ) break// 如果计数大于 20(可自己修改),停止循环 
  12.     }  
  13. }  
  14. echo '</div>'; // div 标签输出结束  

 

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

上面的代码中:

  • div 标签属性可以自己定义。
  • array ('exclude' => '6 17') 可以不设置排除的参数,改为 array ( )
  • 输出标签信息是 <a> 标签和其中的属性可以自己定。

 

如果想使用函数调用,上述代码可以改成如下形式:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

  1. // 在主题functions.php中插入下面的函数  
  2. function get_tags_and_exclude() {  
  3.     $args = array('exclude' => '6 17');  
  4.         $tags_list = get_tags( $args );  
  5.         shuffle($tags_list);  
  6.         $count=0;  
  7.         if ($tags_list) {  
  8.             foreach($tags_list as $tag) {  
  9.                 $count++;  
  10.                 echo '<a title="' . $tag->count . '个话题" href="'.get_tag_link($tag->term_id).'" target="_blank" rel="noopener noreferrer">'.$tag->name.'(' . $tag->count . ')</a>';  
  11.         if$count >20 ) break;  
  12.         }  
  13.     }  
  14. }  

 

在需要的地方使用下面的语句调用:<?php get_tags_and_exclude(); ?>

是否可行,可以尝试一下。代码我已上传到网盘分享,链接: pan.baidu.com/s/1o7AN08M  密码: 2km5

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 2573字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →