[WordPress] 外掛分享: Category Template Hierarchy

首頁外掛目錄 › Category Template Hierarchy
100+
安裝啟用
★★★★★
5/5 分(3 則評價)
5111 天前
最後更新
問題解決
WordPress 3.0+ v1.3.2.1 上架:2011-12-12

內容簡介

這款外掛新增了幾個範本以供選擇:

child-of-category-{slug}.php
category-{slug}.php
child-of-category-{id}.php
category-{term_id}.php
parent-category.php
child-category.php
category.php
archive.php
index.php

這擴充了主題模組的模板層次結構,特別是對於分類而言。主題開發人員
現在可以很容易地為具有子分類、父分類和具有特定父分類的子分類建立不同的範本。

此外,此外掛還提供了四(4)個新的條件式模板標籤:

is_child_category();
is_parent_category();
is_child_of_category();
is_parent_of_category();

只要啟用此外掛,這些函數就可供任何主題或外掛使用。
關於這些功能的詳細文件說明,請參閱本自述檔案的「開發人員註記:
條件式標籤」章節。

注意:此外掛實際上並不會建立 parent-category.php、child-category.php
或任何相關的範本,而是修改了原生的模板層次結構,以允許主題開發人員為父分類和子分類創建特定的範本。

開發人員註記:模板層次結構

以下是針對分類頁可用的範本清單,擴充了原生的模板層次結構。

child-of-category-{slug}.php
category-{slug}.php
child-of-category-{id}.php
category-{term_id}.php
parent-category.php
child-category.php
category.php
archive.php
index.php

只有在當前類別是父類別或子類別時,父模板和子模板才會變得可用。

注意:此外掛實際上並不會建立 parent-category.php、child-category.php
或任何相關的範本,而是修改了原生的模板層次結構,以允許主題開發人員為父分類和子分類創建特定的範本。

開發人員註記:條件式標籤

這款外掛提供了兩個額外的條件式標籤,
行為與 WordPress 中的其他條件式標籤類似。開發人員可以使用這款外掛
中提供的以下函數:

is_parent_category()
is_child_category()
is_child_of_category()
is_parent_of_category()

說明(部分 1)

is_parent_category() 和is_child_category()條件式標籤檢查顯示中的頁面
(或傳遞的參數)是否為具有子分類(例如父類別)、具有父親(例如子類別)的
類別。 它們是布林函數,也就是說它們只會傳回TRUE 或 FALSE。

用法
<?php is_parent_category( $category ); ?>
<?p

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.3.2.1) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「Category Template Hierarchy」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

Adds several new templates to the template hierarchy:

child-of-category-{slug}.php
category-{slug}.php
child-of-category-{id}.php
category-{term_id}.php
parent-category.php
child-category.php
category.php
archive.php
index.php

This greatly extends the native hierarchy of theme templates with regard to
categories. Theme developers can now easily create separate templates for
categories with children, with parents, and children of specific parents.
Additionally makes available four (4) new conditional template tags:

is_child_category();
is_parent_category();
is_child_of_category();
is_parent_of_category();

These functions are available for use in any theme or plugin as along as this
plugin is active. For detailed documentation of these functions see the
‘Developer Notes: Conditional Tags’ section of this readme file.
Note: This plugin does not actually create parent-category.php, child-category.php
or any of their related templates – rather it modifies the native template hierarchy
to allow theme developers to create specific templates for parent and child categories.
Developer Notes: Template Hierarchy
What follows are is the modified list of templates available for category pages.
These expand upon the native Template Hierarchy.

child-of-category-{slug}.php
category-{slug}.php
child-of-category-{id}.php
category-{term_id}.php
parent-category.php
child-category.php
category.php
archive.php
index.php

The parent and child templates only become available if the current category is
a parent or a child respectively.
Note: This plugin does not actually create parent-category.php, child-category.php
or any of their related templates – rather it modifies the native template hierarchy
to allow theme developers to create specific templates for parent and child categories.
Developer Notes: Conditional Tags
With this plugin comes two additional conditional tags
which behave much like any other in WordPress. In a similar fashion to how one
might use is_category() or cat_is_ancestory_of(),
developers may, with this plugin, use the following functions:

is_parent_category()
is_child_category()
is_child_of_category()
is_parent_of_category()

Description (part 1)
The is_parent_category() and is_child_category() conditional tags check if
the page being displayed (or passed as an argument) is of a category that has
children (e.g. is a parent category) has a parent (is a child), respectively.
They are boolean functions, meaning they return either TRUE or FALSE.
Usage

Parameters
$category (integer/string/object) (optional) Category ID, Category Slug, Category Object. Default: Current Category
Note: Unlike is_category(), these functions will not take arrays of categories or category titles. I’ll work on that. Sorry.
Return Values
(boolean) True on success, false on failure.
Examples
is_parent_category()
is_child_category()
// When any parent/child category archive page is being displayed

is_parent_category( '9' );
is_child_category( '9' );
// When the archive page for Category 9 is being displayed AND its a parent/child.

is_parent_category( 'blue-cheese' );
is_child_category( 'blue-cheese' );
// When the archive page for the Category with Category Slug "blue-cheese" is being displayed AND its a parent/child.

Description (part 2)
The is_parent_of_category() and is_child_of_category() conditional tags
check if a given category has a parent or child relationship to the current
category or a category passed as its second parameter. They are
boolean functions, meaning they return either TRUE or FALSE.
Usage

Parameters
(object/string/integer) (required) Category of the would-be parent/child respectively.
(object/string/integer) (optional) Category of the would-be child/parent respectfully. Default: Current Category
(boolean) (optional) Whether or not the child should be a direct child of the parent. Default: True
*
Return Values
(boolean) If the $direct_descendant flag set to true, function returns true if the child is a direct descendant of the parent, if child is no direct it will return false. If $direct_descendant is set to false it will return the same results as cat_is_ancestor_of().
Examples
The following function will return True…
is_child_of_category(0);
// When a top level category is being displayed, zero being the parent id value for top level categories (e.g. categories with no parents).

is_child_of_category(12);
// When the current category is a direct child of the category whose ID is '12'.

is_child_of_category('tv-shows')
// When the current category is a direct child of the category with the slug 'tv-shows' (can also be category ID's).

is_child_of_category('tv-shows', 'dexter');
// When the category with slug 'dexter' is a direct child of the category with the slug 'tv-shows' (can also be category ID's). This may come in handy when manipulating categories while not in a category template.

is_child_of_category('tv-shows', 'dexter', false);
// When the category with the slug 'dexter' is a descendant of the category 'tv-shows' at any level. (uses cat_is_ancestor_of())

is_child_of_category('tv-shows', null, false);
// When the current category is a descendant of the 'tv-shows' category at any level. (uses cat_is_ancestor_of())

is_parent_of_category(13);
// When the current category is the direct parent of a category with the ID '13'.

is_parent_of_category('dexter');
// When the current category is the direct parent of the category with the slug 'dexter'.

Backward Compatibility
The changes this plugin makes to the template hierarchy are significantly different
from that in 1.0.5 and before. If you prefer to use that version please find it
in the Older Versions in the WordPress plugins directory, it is tagged as 1.0.5.
While I do not actively support to QA the older version, I would gladly take a
look at any future bugs that crop up and are reported.

延伸相關外掛

文章
Filter
Apply Filters
Mastodon