Я знаю, что это старый вопрос, но это может помочь кому-то еще ...
Чтобы выполнить то, что вам нужно, вам нужно использовать register_post_type и register_taxonomy WordPress.
В вашем файле functions.php вам понадобится нечто подобное
// Register Custom Post Type
function products() {
$labels = array(
'name' => 'Products',
'singular_name' => 'Product',
'menu_name' => 'Product',
'parent_item_colon' => 'Parent Product:',
'all_items' => 'All Products',
'view_item' => 'View Product',
'add_new_item' => 'Add New Product',
'add_new' => 'New Product',
'edit_item' => 'Edit Product',
'update_item' => 'Update Product',
'search_items' => 'Search products',
'not_found' => 'No products found',
'not_found_in_trash' => 'No products found in Trash'
);
$args = array(
'label' => 'product',
'description' => 'Product information pages',
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', ),
'taxonomies' => array( 'category' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'menu_icon' => '',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post'
);
register_post_type( 'product', $args );
}
// Hook into the 'init' action
add_action( 'init', 'products', 0 );
// Register Custom Taxonomy
function product-category() {
$labels = array(
'name' => 'Product Category',
'singular_name' => 'Product Categories',
'menu_name' => 'Product Category',
'all_items' => 'All Product Categories',
'parent_item' => 'Parent Product Category',
'parent_item_colon' => 'Parent Product Category:',
'new_item_name' => 'New Product Category Name',
'add_new_item' => 'Add New Product Category',
'edit_item' => 'Edit Product Category',
'update_item' => 'Update Product Category',
'separate_items_with_commas' => 'Separate product categories with commas',
'search_items' => 'Search product categories',
'add_or_remove_items' => 'Add or remove product categories',
'choose_from_most_used' => 'Choose from the most used product categories',
);
$rewrite = array(
'slug' => 'product-category',
'with_front' => true,
'hierarchical' => true,
);
$args = array(
'labels' => $labels,
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
'query_var' => 'product-category',
'rewrite' => $rewrite,
);
register_taxonomy( 'product-category', 'product', $args );
}
// Hook into the 'init' action
add_action( 'init', 'product-category', 0 );
Вы можете использовать собственный пост-генератор, такой как http://generatewp.com/post-type/, чтобы облегчить себе жизнь при работе со всеми опциями.
Важно, когда вы регистрируете свои пользовательские типы записей и таксономии, чтобы сбрасывать правила DNS после добавления этого кода или внесения каких-либо изменений в структуру URL. Сделайте это, посетив страницу Настройки администратора WordPress -> Постоянные ссылки, и она автоматически сбросит правила DNS.
Отредактируйте следующие файлы в папке вашей темы для управления отображаемым шаблоном:
- архив-product.php
- таксономия продукт-category.php
- одной product.php