Я искал все это, и ни один из приведенных здесь кодов мне не помог. У меня есть пользовательский тип записи, который называется Products, и в каждом из них есть определенные дочерние категории.
Например, в продуктах:
Hi Fi Compoments
- Усилители
Домашний кинотеатр
- AV-ресиверы
- Стерео Ресиверы
- Системы
Портативное аудио
- Цифровые аудиоплееры
То, что я хотел бы сделать, это назвать первую подкатегорию, а также следующий уровень со списком сообщений этого уровня. Так например
Домашний кинотеатр
- AVRecievers
- список сообщений AV-ресивера
- Стереосистемы
- Список постов стереосистем
- Системы
- Список системных сообщений
Я столкнулся с двумя проблемами с кодом, который нашел:
1. По какой бы то ни было причине, когда я определяю пользовательский тип записи «Продукты», он извлекает каждую категорию из базы данных WordPress.
или
- Когда он включает только определенные категории продуктов, все они вышли из строя и больше не находятся в какой-либо родительской структуре.
У меня есть тип сообщения и он зарегистрирован и работает в другом месте. Я включил тип записи reg, а также из functions.php.
Любая помощь будет принята с благодарностью.
register_post_type( 'Products',
// CPT Options
array(
'labels' => array(
'name' => __( 'Products' ),
'singular_name' => __( 'Product' )
),
'public' => true,
'has_archive' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'taxonomies'=> array('category'),
'rewrite' => array('slug' => 'product'),
)
);
}
Вот пример кода, который я пробовал отсюда, который отображает подкатегории, но нет родительских и дочерних отношений и их вытягивающих категорий, таких как NEWS, которых нет в Продуктах, и нет сообщений.
<?php
$args = array(
'type' => 'products',
'child_of' => 0,
'parent' => '',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'hierarchical' => 1,
'pad_counts' => false );
$categories = get_categories($args);
echo '<ul>';
foreach ($categories as $category) {
$url = get_term_link($category);?>
<li><a href="<?php echo $url;?>"><?php echo $category->name; ?></a></li>
<?php
}
echo '</ul>';
?>