»

WordPress系统调用分类目录下的标签,并控制数量、随机排列

    WordPress  
CDN的问题访客浏览器WordPress插件SEOwordpresswindows主机Wp Super Cache插件爬虫身份认证伪静态防盗链腾讯云加速htaccessweb.config访问cookiesIISCLB缓存Apache工作查询网站镜像

在使用WordPress系统写文章时,有时候我们需要在文章中插入分类目录下的标签,而且需要的是选取标签、随机排列标签。完成这一步,需要以下代码。

首先需要创建一个函数,选取分类目录下的标签,并让其随机排列:

  1. / ** 
  2. * WordPress系统随机获取某个分类中的标签 
  3. * /  
  4. function get_category_tags( $args ) {  
  5.     global $wpdb;  
  6.     $tags = $wpdb->get_results (" 
  7.         SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name 
  8.         FROM 
  9.             $wpdb->posts as p1 
  10.             LEFT JOIN $wpdb->term_relationships as r1 ON p1.ID = r1.object_ID 
  11.             LEFT JOIN $wpdb->term_taxonomy as t1 ON r1.term_taxonomy_id = t1.term_taxonomy_id 
  12.             LEFT JOIN $wpdb->terms as terms1 ON t1.term_id = terms1.term_id, 
  13.  
  14.             $wpdb->posts as p2 
  15.             LEFT JOIN $wpdb->term_relationships as r2 ON p2.ID = r2.object_ID 
  16.             LEFT JOIN $wpdb->term_taxonomy as t2 ON r2.term_taxonomy_id = t2.term_taxonomy_id 
  17.             LEFT JOIN $wpdb->terms as terms2 ON t2.term_id = terms2.term_id 
  18.         WHERE 
  19.             t1.taxonomy = 'category' AND p1.post_status = 'publish' AND terms1.term_id IN (".$args['categories'].") AND 
  20.             t2.taxonomy = 'post_tag' AND p2.post_status = 'publish' 
  21.             AND p1.ID = p2.ID 
  22.             ORDER by tag_name 
  23.     ");  
  24.     $count = 0;  
  25.     if$tags ) {  
  26.         foreach ( $tags as $tag ) {  
  27.             $mytag[$count] = get_term_by('id', $tag->tag_id, 'post_tag');  
  28.             $count++;  
  29.         }  
  30.         shuffle( $mytag ); // 把数组中的元素按随机顺序重新排序  
  31.     } else {  
  32.       $mytag = NULL;  
  33.     }  
  34.     return $mytag// 返回数组  
  35. }  

 

之后,在博文或者需要引入标签的地方调用该函数:

  1. $cat= single_cat_title( '', false );  
  2. $args = array( 'categories' => get_cat_ID( $cat ) ); // 获取分类ID  
  3. $tags = get_category_tags( $args ); // 获取该ID下的标签  
  4. $content .= "<ul>";  
  5. if( !empty$tags ) && ($tags != NULL) ) { // 如果有标签  
  6.     $i = 0;  
  7.         foreach ( $tags as $tag ) {  
  8.         $i++;  
  9.         if$i <= 20 ) { // 控制标签数量  
  10.             $content .= "<li><a href=\"".get_tag_link($tag->term_id)."\" target='_blank'>".$tag->name."</a></li>"// 获取标签名称和链接  
  11.             }  
  12.         }    
  13.     $content .= "</ul>";  
  14.     echo $content;   
  15. // 输出标签  

大功告成,试一下吧!

代码已分享在这里:pan.baidu.com/s/1tfTRC50oSAVYEC-nAKYmLw  密码: iqtm

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