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

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

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

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

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

应用实例

首先应该了解网站的结构,例如当前发布类型有两个最主要的大类分别是 videos 和最常见的 post。对应的 taxonomy 分类法分别是:

  • videos—videoscategory&videstags(这是自定义的)
  • post——category&post_tag(wordpress 默认如此)

其次,我们应该弄清楚,wordpress 是否给我们提供了可以实现需求的原生函数。

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

此次本文提到的两个应用,都可以找到原生函数。因此我们只需要根据需求挑选出参数,用变量替代即可。如,对于标签云的调用,我们使用 wp_tag_cloud()就足够:

  1. <?php wp_tag_cloud( $args ); ?>
  2. <?php $args = array(
  3.     'smallest'                  => 8,
  4.     'largest'                   => 22,
  5.     'unit'                      => 'pt',
  6.     'number'                    => 45,
  7.     'format'                    => 'flat',
  8.     'separator'                 => \"n\",
  9.     'orderby'                   => 'name', 
  10.     'order'                     => 'ASC',
  11.     'exclude'                   => null, 
  12.     'include'                   => null, 
  13.     'topic_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_categories( $args ); ?>
  2. <?php $args = array(
  3.     'show_option_all'    => '',
  4.     'orderby'            => 'name',
  5.     'order'              => 'ASC',
  6.     'style'              => 'list',
  7.     'show_count'         => 0,
  8.     'hide_empty'         => 1,
  9.     'use_desc_for_title' => 1,
  10.     'child_of'           => 0,
  11.     'feed'               => '',
  12.     'feed_type'          => '',
  13.     'feed_image'         => '',
  14.     'exclude'            => '',
  15.     'exclude_tree'       => '',
  16.     'include'            => '',
  17.     'hierarchical'       => 1,
  18.     'title_li'           => __( 'Categories' ),
  19.     'show_option_none'   => __('No categories'),
  20.     'number'             => null,
  21.     'echo'               => 1,
  22.     'depth'              => 0,
  23.     'current_category'   => 0,
  24.     'pad_counts'         => 0,
  25.     'taxonomy'           => 'category',
  26.     'walker'             => null
  27. ); ?>

我们的代码是针对侧边栏的调用设计的,那么在写的时候注意 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('smallest=8&largest=20&taxonomy='.$type.'&number='.$num);
  6. echo'</div>';
  7. }
  8. //分类目录调用
  9. function newcats($title,$taxonomy){
  10. echo'<div class="widget"><h3><span>',$title,'</span></h3></div>';
  11. wp_list_categories('id=tougaocategorg&show_count=1&hierarchical=1&hide_empty=0&taxonomy='.$taxonomy);
  12. echo'<div>';
  13. }
  14. ?>

函数调用

比如,我们想在侧边栏调用一个网站视频的分类目录,我们就可以写

  1. <?php
  2. <div id="sidebar">
  3. newcats('网站视频分类','videoscategory')
  4. </div>
  5. ?>

本文只是代码优化的一个小小的实例,原则是减少重复,方法是利用 wp 原生函数,合理设计参数变量。实际测试中,wp_list_cats()也可以完成上面的需求。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/80477

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注

51建站客服微信二维码
点击这里购买