Существует большая общая категория Catalog
($category->cat_ID = 2
). Он содержит несколько подкатегорий, таких как Series1
, Series2
и так далее. Каждая подкатегория содержит несколько подкатегорий, таких как Type1
, Type2
и т. Д. И каждая под-подкатегория содержит некоторые продукты (тип post
).
Мне не нужно показывать общую категорию Catalog
и ее подкатегории, но мне нужно показать под-подкатегорию с ее продуктами на отдельных страницах.
Как установить 404.php
шаблон для категории Catalog
и его подкатегории и пользовательские шаблоны для каждой подкатегории (со списком продуктов) и для каждого продукта?Wordpress с использованием пользовательского шаблона для подкатегорий и сообщений в пределах
Я нашел код ниже (functions.php
файл)
function catalog_template() {
// Get the category id from global query variables
$cat = get_query_var('cat');
if(!empty($cat)) {
// Get the detailed category object
$category = get_category($cat);
// Check if it is sub-category and having a parent, also check if the template file exists
if(($category->parent != '0') && ($category->parent == '2') && (file_exists(TEMPLATEPATH . '/catalog.php'))) {
// Include the template for sub-catgeory
include(TEMPLATEPATH . '/catalog.php');
exit;
}
return;
}
return;
}
add_action('template_redirect', 'catalog_template');
, но я не знаю, как настроить его для моих потребностей.
UPD. Я написал код, приведенный ниже
function catalog_template() {
// Get the category id from global query variables
$cat = get_query_var('cat');
if(!empty($cat)) {
$catalog_id = get_cat_ID('Catalog');
$catalog_child_cats = array();
foreach(get_all_category_ids() as $child_cat)
{
if(get_category($child_cat)->parent==$catalog_id)
{
$catalog_child_cats[]=$child_cat;
}
}
// Get the detailed category object
$category = get_category($cat);
$cat_parent_id = $category->cat_ID;
// Check if it is sub-category and having a parent, also check if the template file exists
if((in_array($cat_parent_id, $catalog_child_cats)) && (file_exists(TEMPLATEPATH . '/catalog.php'))) {
// Include the template for sub-sub-catgeory
include(TEMPLATEPATH . '/catalog.php');
exit;
}
return;
}
return;
}
add_action('template_redirect', 'catalog_template');
но он использует catalog_template
для sub-categories
тоже. Как установить 404.php
для общей категории Catalog
и для ее подкатегорий?
UPD2 Я нашел ошибку в своем коде, он должен быть
// Get the detailed category object
$category = get_category($cat);
$cat_parent_id = $category->category_parent;
Я обновил свой вопрос, вы можете проверить, пожалуйста? – hronikata