首页 > 经验 > 关键词  > WordPress函数最新资讯  > 正文

WordPress函数get_term_link的参数问题

2012-05-28 11:36 · 稿源:zww.me

最近帮一个朋友写企业类主题,需要对产品设定一个专门的 post type 名叫 product,为了管理方便性,我对 product 设置了专门的分类类型和标签类型,分类类型为 product_cat(WordPress 本身的分类类型为 category)。

为何要用 get_term_link?:

新类型的分类是无法用 <?php echo get_category_link( $category_id );?> 输出分类链接地址的,需要用 get_term_link() 函数,此函数用法如下:

<?php get_term_link( $term, $taxonomy ); ?>

具体参考 WordPress Codex:https://codex.wordpress.org/Function_Reference/get_term_link

问题:

举个例:

- 自定义分类ID的变量为 $term,$term 是根据后台设置而改变的,为了方便说明,这里假定后台参数为 $custom_term = 8

- 我要获取自定义分类ID为 $term 的分类链接地址,那么按照官方说明应该是:

<?php

$term = $custom_term;

echo get_term_link( $term, 'product_cat');

?>

看似没错,但问题来了,这样会返回错误:

Catchable fatal error: Object of class WP_Error could not be converted to string in.。没错啊,直接用 echo $term; 输出结果的确是 8,这就让人郁闷了……

不过如果你直接这样:

<?php echo get_term_link( 8, 'product_cat'); ?>

又能正常工作。

解决方法:

在 WordPress Codex 打转时,无意中看到国外朋友也碰到这个问题,然后他自己解决了,顿悟……传送门 》

原来是变量类型问题,这 get_term_link 函数和其它常用的 WordPress 函数不同,不会自己转换变量类型,你得先把字符类转换为整数才能正常工作,好Orz的函数!

下面这样就能正常工作:

(坐在沙发上的Bolo注:intval($term, 10)会更好,不然$term值太大的时候会有进制转换问题,要么就用(int)$term)

<?php

$term = $custom_term;

echo get_term_link( intval($term), 'product_cat');

?>

所以,以后遇到类似这郁闷的函数,就要考虑是不是变量数据类型问题了。

折腾玩(完)。

本文地址:https://zww.me/archives/25652

  • 相关推荐
  • 大家在看
  • WordPress建站用哪个主机好?GoDaddy主机评测推荐

    虚拟主机服务在国内外已经有超过20 多年历史了,是一个相对比较成熟的行业,市场上有成百上千家公司提供虚拟主机租赁服务。也正因为如此,这个行业竞争非常激烈。虚拟主机服务的价格从1 美元到上百美金每月不等都有,服务质量也是参差不齐,有些虚拟主机三天两头出问题,不是速度慢就打不开。这两年建站,除了用户有特别要求外,基本上都是使用WordPresss程序建站,不仅功能强大、扩展性强、安全性高,而且安装简单、使用方便。选?

  • Ubuntu发行商推出Multipass​:在M1 Mac上快速运行Linux

    Ubuntu 发行商 Canonical 今天宣布了在 M1 Mac 上运行 Linux 发行版本“最快捷方式”--Multipass。用户只需要一个命令,就能启动一个虚拟机镜像,整个过程可以控制在 20 秒内。Canonical 声称自己是首个在 M1 Mac 平台上改造 Linux 发行版本的公司,但 Linux Kernel 的团队每月都在改进其平台,以便在 Mac 上提供尽可能好的体验。上个月,该项目的创建者说,Linux 现在“可以作为一个基本的桌面使用”。Canonical 产品经理 Nathan

  • 苹果宣布威廉王子将成为Apple Fitness+下一个“Time to Walk”名人嘉宾

    据AppleInsider报道,苹果公司已宣布威廉王子将成为下一个“Time to Walk”名人嘉宾,他的 Apple Fitness+音频记录也将在Apple Music 1上播放。继2021年1月为 Apple Watch推出“Time to Walk”录音后,苹果一直在稳步增加新的名人。现在,在该公司所说的标志着其第二系列明星谈话的结束,威廉王子已经为该服务录制了21分钟的音频。每个“Time to Walk”版本都是在嘉宾行走时录制的。然后每个版本之后还会有来自 Apple Music 的简短

  • 在长期休整后,SpaceX重新开始Starlink卫星部署工作

    SpaceX将于当地时间周五上午恢复建立其Starlink宽带卫星群。一枚“猎鹰9号”火箭计划于太平洋时间凌晨4:31(美东部时间上午7:31)从佛罗里达州卡纳维拉尔角发射并携带了一批最新的激光装备版飞行路由器。最近几个月,埃隆·马斯克的公司一直专注于让星际飞船为其首次轨道飞行做好准备,与此同时还将宇航员来回运送到国际空间站。在2021年上半年将数以百计的Starlink抛向天空后,下半年至今只有一次Starlink任务--总共将51颗下一代?

  • 苹果宣布为小型企业推出 Business Essentials 订阅服务

    苹果公司今天宣布推出Apple Business Essentials,这是一项新的基于订阅的服务,将为员工人数不超过500人的小型企业提供设备管理(如设置和入职)、iCloud存储,以及可选的7x24小时苹果支持服务。

  • 美DHS空间安全工作组成员未见SpaceX和Starlink的身影

    总部位于加利福尼亚州霍桑的太空运输服务供应商SpaceX及其互联网服务供应商子公司SpaceX LLC缺席美国国土安全部(DHS)的空间系统关键基础设施工作组。据悉,SSC由美联邦机构、企业、贸易组织和研究中心组成。它的目的是就如何为对美国国家安全至关重要的服务制定风险最小化战略向国土安全部提出建议。该工作组由DHS于今年5月成立,旨在制定研究和减少依赖空间系统的美国关键基础设施资产风险的战略。空间工业的发展已经看到一些服务

  • Hennessey发布狂野6轮电动超跑Project Deep Space

    六个轮子、六个电动马达和一个灵感来自私人飞机的机舱,当你以200mph或更高的速度行驶时:没有人会指责汽车制造商Hennessey在谈到他们的Project Deep Space超跑时缺乏想象力。这家公司也许因制造更强大的性能皮卡版本而闻名,更不用说Venom F5了,它正在通过一款四座的全电动公路火箭来承诺更疯狂的事情。Hennessey Project Deep Space看起来更像是Thunderbirds的作品,而不是传统的豪华轿车。虽然该公司只分享了几张设计草图,但这

  • 移动云ServerlessDB for HTAP项目不负众望,包揽双奖!

    移动云ServerlessDBforHTAP——作为移动云与PinCAP联合实验室携手鼎力打造的云数据服务项目,于 2021 年 11 月,参加HackingCamp2021 生态答辩会,并不负众望的从诸多参赛企业中展露头角,同时斩获“优秀毕业生”和“最佳应用”两项大奖,收获“最有商业价值”、“最有实际应用场景”的高水平评价。初心移动云在今年 5 月份正式对外提供TiDB云数据库服务,在推广过程中,我们发现很多用户对TiDB感兴趣,但是大部分用户因为价格原因

  • HUAWEI AppGallery Connect 研习社 Serverless 技术沙龙·厦门站圆满落幕

    11 月 25 日,HUAWEI AppGallery Connect研习社·Serverless技术沙龙在厦门举行。沙龙以“加载创新源动力”为主题,以Serverless技术为核心。华为消费者云服务应用生态的多位技术、产品、运营专家携手厦门软件、游戏开发领域的业界领袖,与开发者们相聚一堂,探讨了在 Severless技术趋势下,开发者如何利用HUAWEI AppGallery Connect Serverless服务,提升开发效率,加速应用创新。沙龙为开发者对于 Severless的理解与实战,提供了

  • Spotify与Netflix合作推出新的专用Netflix Hub

    Spotify今天宣布,它正在与Netflix合作,在该服务中推出一个专用的Netflix hub。该中心可以从移动设备以及服务的web版本访问。这个专用的中心将为所有与Netflix相关的媒体提供一站式服务,其中一些媒体是Spotify独家提供的。这包括Netflix节目和电影的官方配乐,包括流行的新剧《乌贼游戏》和林曼努埃尔·米兰达的故事片《滴答滴答。。。轰以及官方播放列表,包括《金钱抢劫》和《布里奇顿》等节目中的所有授权歌曲。该中心也是Net

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天