文章索引
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>";
}
?>