Так что моя WordPress CMS прошла довольно долгий путь (и я довольно много узнал о WordPress. Я создал собственный тип записи под названием Products
, который находится здесь:
add_action( 'init', 'create_product_post_type' );
function create_product_post_type()
{
$labels = array(
'name' => _x('Products', 'post type general name'),
'singular_name' => _x('Product', 'post type singular name'),
'add_new' => _x('Add New', 'product'),
'add_new_item' => __('Add New Product'),
'edit_item' => __('Edit Product'),
'new_item' => __('New Product'),
'view_item' => __('View Product'),
'search_item' => __('Search Products'),
'not_found' => __('No products found'),
'not_found_in_trash' => __('No products found in Trash'),
'parent_item_colon' => '',
'menu_name' => 'Products'
);
$args = array(
'label' => __('Products'),
'labels' => $labels,
'public' => true,
'can_export' => true,
'show_ui' => true,
'_builtin' => false,
'capability_type' => 'post',
'menu_icon' => get_bloginfo('template_url').'/functions/images/product.png',
'hierarchical' => false,
'rewrite' => array( "slug" => "product" ),
'supports' => array('title'), //MAYBE add thumbnail later!
'show_in_nav_menus' => true
);
register_post_type( 'product', $args);
}
Затем пользовательская таксономия под названием Category
, которая находится здесь:
function create_productcategory_taxonomy() {
$labels = array(
'name' => _x( 'Categories', 'taxonomy general name' ),
'singular_name' =>_x( 'Category', 'taxonomy singular name' ),
'search_items' => __( 'Search Categories' ),
'popular_items' => __( 'Popular Categories' ),
'all_items' => __( 'All Categories' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Product Category' ),
'update_item' => __( 'Update Product Category' ),
'add_new_item' => __( 'Add New Product Category' ),
'new_item_name' => __( 'New Product Category' ),
'separate_items_with_commas' => __( 'Separate categories with commas' ),
'add_or_remove_items' => __( 'Add or remove product categories' ),
'choose_from_most_used' => __( 'Choose from the most used categories' )
);
register_taxonomy('productcategory', 'product', array (
'label' => __('Product Category'),
'labels' => $labels,
'hierarchical' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'product-category'),
));
}
. Я создал одну страницу в меню wp-admin под названием Продукты, в которой есть собственный шаблон, который я создал. Перейти к http://localhost/project/productsвыводит его и перечисляет все типы сообщений о продуктах. Я также создал страницу для single-products.php, на которой отображаются сведения о типе сообщений одного продукта.
Что я не уверен, как это сделать, так это создатьспособ фильтрации моих товаров по пользовательской таксономии Category
, которая указана выше. Допустим, у меня есть продукт, который является виджетом. Этот виджет имеет Category
«Spring Loaded». Если я хочу просмотреть один виджет, яможно просто сослаться на http://localhost/project/products/widget, и это вызовет страницу single-product.php
и отобразит виджет, когда я отформатировал страницу, чтобы сделать это. Но я хотел бы сослаться только на категорию «Spring Loaded» и перечислить всемои продукты в этой заказной кошкеegory.Я считаю, что в каждой категории есть свой слаг (например, подпружиненный).Если я перейду к http://localhost/project/product-category/spring-loaded, то откроется страница, но я не знаю, какой файл он загружает, иначе я мог бы изменить вывод.Прямо сейчас он загружает каждый продукт как обычный пост (с датой, комментариями и т. Д.).
Итак, мой вопрос, как я могу отфильтровать эти категории?Или какой файл я изменяю, чтобы изменить вывод связанной страницы с http://localhost/project/product-category/spring-loaded?
Надеюсь, это имеет смысл.Спасибо!
ОБНОВЛЕНИЕ: Аааа.Теперь это имеет смысл.Я изменил это:
register_taxonomy('productcategory', 'product', array (
'hierarchical' => true,
'rewrite' => array( 'slug' => 'product-category'),
));
на это:
register_taxonomy('productcategory', 'product', array (
'hierarchical' => true,
'rewrite' => array( 'hierarchical' => true),
));
Хотя я не уверен, что именно это делает.
Я также создал таксономию-товарную категорию.php и сделал быстрое форматирование и тестирование, но это действительно работает.Я могу перейти на http://localhost/project/productcategory/, и он перечислит все продукты для этой категории.
Теперь мне нужно изменить правила переписывания, как вы?Честно говоря, я не понимаю, как работает htaccess, поэтому я не знаю, нужно ли мне это изменить или нет.Спасибо!