首頁  >  文章  >  CMS教程  >  WordPress中函數get_term_link的參數怎麼設定

WordPress中函數get_term_link的參數怎麼設定

藏色散人
藏色散人原創
2020-01-11 09:45:223203瀏覽

WordPress中函數get_term_link的參數怎麼設定

WordPress中函數get_term_link的參數怎麼設定?

WordPress中函數get_term_link的參數設定問題

#推薦:《wordpress教學

最近幫一個朋友寫企業類主題,需要為產品設定一個專門的post type 名叫product,為了管理方便性,我對product 設定了專門的分類類型和標籤類型,分類類型為product_cat(WordPress 本身的分類類型為category )。

為何要用get_term_link?: 

新類型的分類是無法用234ca7dc13b15dc5213cebe0fb8e36e8 輸出分類連結位址的,需要用get_term_link() 函數,此函數用法如下: 

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

具體參考WordPress Codex:http://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, &#39;product_cat&#39;); 
?>

看似沒錯,但問題來了,這樣會回傳錯誤: 

# Catchable fatal error: Object of class WP_Error could not be converted to string in.。沒錯啊,直接用 echo $term; 輸出結果的確是 8,這就讓人鬱悶了… 

不過如果你直接這樣: 

<?php echo get_term_link( 8, &#39;product_cat&#39;); ?>

又能正常運作。

解決方法: 

在WordPress Codex 打轉時,無意中看到國外朋友也碰到這個問題,然後他自己解決了,頓悟…傳送門》 

原來是變數類型問題,這get_term_link 函數和其它常用的WordPress 函數不同,不會自己轉換變數類型,你得先把字元類別轉換為整數才能正常運作,好Orz的函數!

下面這樣就能正常運作: 

(坐在沙發上的Bolo註:intval($term, 10)會更好,不然$term值太大的時候會有進制轉換問題,要嘛就用(int)$term) 

<?php 
$term = $custom_term; 
echo get_term_link( intval($term), &#39;product_cat&#39;); 
?>

所以,以後遇到類似這鬱悶的函數,就要考慮是不是變數資料型別問題了。 

折騰玩(完)。 

以上是WordPress中函數get_term_link的參數怎麼設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn