!
也想出现在这里? 联系我们
广告位

WordPress优化多类型分类目录/标签侧栏调用通用代码

网站中有多种发布类型(post_type)的站长或许会有这样的体会,无论特殊需求的文章汇总(最热,相关,随机)还是是 category 和 tag 这些 taxonomy 分类的归档,总是麻烦些,有的可以通过更改2 x O 8原有函数的参数来实c G # 4 z u现,有的甚至需; U U要手动写一些查询,那么我们应该怎样在代码层进行j v .

对于 WordPress 网站中有自定义 post_type 的站长来说,我们有必要y \ _ M D n自己定义一些函数,用于页面模板设计时的调用,代码层面的优化我一直坚守的原则——结构清晰,减少重复。

有不少 WordPress 用户在主题功能扩展的时候,很多新手对 wordpress 函数方法不熟悉往往习惯页面中直接写 SQL 查询,因为简单,但是结果就是需要一次写一次,增大了文件体积不说,管理起来也是一片混乱,到了维护后期还得整理。

基于上面提到的原则,我们有必要在 function 中定义一些经常用到的并且多 post_type 通用的函数,方便调用。本篇文章我们就以侧边栏经常调用的Q _ ! Z z 0 { ] a网站目录和网T Q -标签为例。

应用实例

首先应该i d )了解网站的结构,例如当前发布类型s G E I有两个最主要t k , x的大类分别是 videos 和最常见的 p9 * w R x a O c wost。对应的 taxonomy 分类法分别是:

  • videos—videosy 9 + Z 1 + h d Ocategory&videstags(这是自定义的)
  • post——category&post_tag(wordQ \ -press 默认如此)

其次,我们应该弄清楚,wordpressr @ t E s X o { 是否给我们提供了可以实现需求的* ; W 0 ; 6原生函数。

  • 如果有,我们则可以使用变量参数f e Y或者多个原生函数组合来构建一个新的函数。
  • 如果没有,我们可能就要设计查询了。

此次本文提到的两个应用,都J y y可以找到原生函数。因此我们只需要根据需求挑2 } g v 1选出参数,用变量替代即可。如,对于标签云的调用,我们使用 wp_tag_cloud(W o # ? H $ % T)就足够:

  1. <?php wp_tag_cloud( $args ); ?>
  2. &lD S 2 : Wt;?phpS 9 ) l a [ J @ n $args = array(
  3. 'smallest' => 8,
  4. 'lar2 ; ?gest' => 22,
  5. 'unit' => 'pt',
  6. 'number' => 45,
  7. 'formn h ~ w } _ ( } -at' => 'flat',
  8. 'separator' => \&qu7 ? Sot;n\",
  9. 'orderby' => 'name',
  10. 'order' =&gt) t [; 'ASC',
  11. 'exclude' => null,
  12. 'include' => null,
  13. 'topiI ` P ! 9 s W Oc_count_text_callback' => default_topic_count_text,
  14. 'link' => 'view',
  15. 'taxonomy' => 'post_tag',
  16. 'echo' => true,
  17. 'child_of' => null(see Note!)
  18. ); ?>

对于分类目录,我们自然想到了 wp_list_cats(),不过此函数已经被 wp_list_categories()给替代了。

  1. <?php wp_list_categorM y : # !ies( $args ); ?>
  2. <?php~ \ = i R \ v N $args = array(
  3. 'show_option_allS l 2 d A % 8' => '',
  4. 'orderby' => 'name',
  5. 'order' => 'ASC',
  6. 'style' => 'list',
  7. 'show_count' => 0,
  8. 'l t P z Fhide_empty' => 1,
  9. 'use_desc_for_t. b 8 X C ; B T Jitle' => 1,
  10. 'child_of' => 0,
  11. 'feed' => 'T / A Z S s _ { 0',
  12. 'feed_type' => '',
  13. '0 ( ) N ; u G `feed_image' => '',
  14. 'exclude' => '',
  15. 'exclude_tree' => '',
  16. 'include' => '= t V & 7 7 %',
  17. 'hierarchical' =>\ x 6 g 1,
  18. 'title_li8 a ` y' => __( 'Categories' ),
  19. 'show_option_none' => __('No categories'),
  20. 'numbet ` ` # \ K ` Hr' => null,
  21. 'echo' => 1,
  22. 'depth' => 0,
  23. 'cu? D \ ^ ` } I ( }rrent_h p c f R G K {category' => 0,
  24. 'pad_counts' => 0,
  25. 'taxonoP X \ ;my' => 'category',
  26. 'walker' => null
  27. ); ?>

v 0 0 g {们的代码是针对侧边栏的调用设计的,那么在写的时候注意 class=“widget”,以搭配样式表。

  1. <?php
  2. //新标签调用
  3. function newtags($title,$type,$num){
  4. echo'<div class="widget"><h3><span>',$title,'</span></h3>';
  5. wp_tag_cloud('smallb 6 - N G n c /est=8&largest=20&taxonomy='.$type.'&number='.$nZ ^ B 2um);
  6. echo'</div>';
  7. }
  8. //分类目录调用
  9. function newcats($title,$taxonomy){
  10. echo'<div class=&qu2 M N D # K ^ot;widget"><h3&gtw ! @ * W 9;<span>',$title,'</span></h3></div>';
  11. wp_list_s Y R r # [ .categories('id=tougaocategorg&show_count=1&hie[ | e ` 8 l H trarchical=1&hide_empty=0&taxonomy='.$taxonomy);
  12. echo'<div>';
  13. , ? + ] n25;
  14. ?>d X Q

函数调用

比如,我们想在侧T % 1 L 7 ! ; l b边栏调用一个网站视频的分类目录,我们就可以写

  1. <?php
  2. <div id=&quy l g T / & j 3 Iot;sidebar"^ a c T q c &>
  3. newcats('网站视频分类','videoscategory')
  4. </div>
  5. ?>

本文只是代码优化的一个小小的实例,原则是减少重复,方法是利用 wp 原生函数,合理设计参数变量。实际测试7 P e Z : A W [ C中,wp_list_cats()q r K m $也可以完成上面的需求。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

weForms 插件添加自定义数据列到提交内容列表

2022-10-4 3:49:02

WordPress教程

WordPress多种分类法混合查询优化方案

2022-10-12 3:48:27

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索