人氣 1343°c

WordPress單一獲取當前分類or父級(頂級)分類名稱﹑別名(代稱)和連結(URL)

文章索引

WordPress想在分類頁「category.php」模板或文章頁「single.php」模板,解析輸出帶有連結(鏈接)的分類名稱,都會用到 the_category() 函數,來拿取Category分類的資料。BUT..這個函數需則簡單,如想單獨獲取當前分類或父級(頂級)的分類名稱(Category Name)﹑分類代稱(別名 / Category Slug)和分類連結(鏈接 / Category URL)就需要有一定的技巧了。

如果你正在修改WP模板,在不同的分類頁或文章分頁都只顯示"分類名稱"不帶URL(連結 / 鏈接)的導航欄,以下代碼也適合。

獲取父級(頂級)分類信息

首先我們瞭解一下什麼是父級(頂級)分類及子級(二級)分類。

在WP控制台的分類清單頁面,新增第一個分類的名稱、代稱(別名)。請看圖片▼

再來新增第二個分類的名稱、別名(代稱);這一次在「上層分類」的欄目,選擇剛才新增的第一個分類名稱。請看圖片▼

最後!我們可以清楚見到,第一個為頂層分類,而第二個則為子分類。請看圖片▼

若你想在主級分類頁或二級分類頁或二級分類頁的文章,都只須獲取父級(頂級)分類的名稱、別名、代稱及URL,可以運用以下Code.

不知我這樣解釋出來...大家明不明白>!<

好了...某一天...你有需求時maybe會懂的.

A. 獲取當前文章的父級分類名稱及連結(鏈接)

<?php
foreach (get_the_category() as $category) {
$parent_id = $category->parent;
if ($parent_id) {
$parent_category = get_term($parent_id);
echo '<a href ="' . get_term_link($parent_category->term_id) . '">' . $parent_category->name . '</a>';
}
else
{
echo '<a href ="' . get_category_link($category->term_id) . '">' . $category->name . '</a>';
}
}
unset($category);
?>

B. 獲取當前文章的父級分類名稱

<?php
foreach (get_the_category() as $category) {
$parent_id = $category->parent;
if ($parent_id) {
$parent_category = get_term($parent_id);
echo '' . $parent_category->name . '';
}
else
{
echo '' . $category->name . '';
}
}
unset($category);
?>

C. 獲取當前文章的父級分類連結(鏈接)

<?php
foreach (get_the_category() as $category) {
$parent_id = $category->parent;
if ($parent_id) {
$parent_category = get_term($parent_id);
echo '' . get_term_link($parent_category->term_id) . '';
}
else
{
echo '' . get_category_link($category->term_id) . '';
}
}
unset($category);
?>

D. 獲取當前文章的父級分類別名(代稱)

<?php
foreach (get_the_category() as $category) {
$parent_id = $category->parent;
if ($parent_id) {
$parent_category = get_term($parent_id);
echo '' . $parent_category->slug . '';
}
else
{
echo '' . $category->slug . '';
}
}
unset($category);
?>

獲取當前分類信息

A. 獲取當前分類的名稱及連結(鏈接)

<?php the_category(' '); ?>

<?php
 $categories = get_the_category();
   if ( ! empty( $categories ) ) 
   {
    echo '<a href="' . esc_url( get_category_link( $categories[0]->term_id ) ) . '">' . esc_html( $categories[0]->name ) . '</a>';
    }
?>

B. 獲取當前分類的名稱

<?php
foreach((get_the_category()) as $category){
echo $category->name."<br>";
}
?>

C. 獲取當前分類的連結(鏈接)

<?php
 $categories = get_the_category();
   if ( ! empty( $categories ) ) 
   {
    echo '' . esc_url( get_category_link( $categories[0]->term_id ) ) . '';
    }
?>

D. 獲取當前分類的別名(代稱)

<?php
foreach((get_the_category()) as $category){
echo $category->slug."<br>";
}
?>
標籤: