Back to site

Карыстацкія шаблоны для бацькўскіх і проста катэгорыі (без убудоў) у WordPress

Original on http://www.scriptygoddess.com/archives/2010/03/14/custom-template-for-parent-and-sub-categories-without-a-plugin-in-wordpress/

Пры выкарыстанні WordPress як CMS, я часта перапрафілюю "паведамленні" і іншыя тыпы кантэнту для сайта, якія могуць спатрэбіцца. Напрыклад, навіна, прэс-рэлізы, ці любая інфармацыя, якая можа спатрэбіцца здольнасць быць катэгарызаванай і / ці на цэтліку (напрыклад, рэкамендацыі). Аднак, гэта можа азначаць, што вам трэба зусім іншы шаблон для старонкі навін, чым вы жадалі б для сваёй старонкі водгукаў.

WordPress дае вам магчымасць ствараць катэгорыі пэўных шаблонаў. Так скажам, ваш "Навіны" катэгорыі ID 5 - калі вы ствараеце category.php старонкі, якая будзе выкарыстоўвацца ўсімі іншымі катэгорыямі, а таксама створаны катэгорыі 5.php старонка - то проста вашы навіны старонцы будзе выкарыстоўваць гэты шаблон для старонак архіва катэгорыі.

Але - што рабіць, калі ў вас ёсць велізарнае некалькі падкатэгорый, і вы жадаеце іх выкарыстоўваць той жа шаблон катэгорыі, як яго бацькоў? (Давайце таксама выкажам здагадку, што мы не можам проста зрабіць гэты шаблон па змаўчанні) Вось што я прыдумаў. Давайце выкажам здагадку, што наш Водгукі катэгорыя - гэта ідэнтыфікатар 12. Яна таксама мае тузіны падкатэгорыі (дзеля аргументу, дазваляе сказаць, што мы адсартавана нашы водгукі ў групы ад таго, што тыпы кампаній гэтых прыйшлі з "кансалтынгавых фірмаў", "Вэб-хостынг правайдар", "Дызайн фірмы", і г.д..

Мы не жадаем, каб дубляваць нашы катэгорыі шаблон для кожнай падкатэгорыі ў нас ёсць. Гэта кашмар для кіравання. Так што давайце рабіць гэта замест: У файле шаблону category.php - Першым чынам - нават перад выклікам get_header () - мы дадамо наступнае:

$thecategory = get_category($cat);
if ($thecategory->category_parent == '12' || $thecategory->cat_ID == '12') {
include(TEMPLATEPATH.'/testimonials-template.php');
} else {
/* include... default template file here like we included the "testimonials-template.php - or you can just wrap this around your actual template code... */
}

Так што ж гэта робіць, ён атрымлівае інфармацыю пра катэгорыю - Калі бацька бягучай катэгорыі складае 12, ці мы насамрэч глядзіць на катэгорыі 12 - тое, што цягнуць у адмысловых водгукі-файл template.php... У адваротным выпадку іншы код будзе выкананы. (У файле я выкарыстоўваў я толькі што якая завяршылася, што вакол майго існага кода шаблону category.php...

Калі ласка, звернеце ўвагу: я не правяраў гэтага, калі вы пакутуеце SUB падкатэгорыі - Я думаю $thecategory->category_parent, верагодна, толькі глядзіць на адзін узровень вышэй бягучай катэгорыі... так што майце гэта ў выглядзе.

(Я раблю нататку вышэй, што гэта не ўключае ўбудову, таму што калі я спрабаваў атрымаць гэту працу - адно рашэнне, якое я знайшоў анлайн якія ўдзельнічаюць усталёўкі ўбудова, які заблытваецеся з маёй катэгорыі ў іерархіі, як я не быў вар'ятам о. Асабіста я лічу, што гэта значна прасцейшае рашэнне)

Published (Last edited): Feb 21