/* Тип страниц Товары */
add_action( 'init', 'register_cpt_tovary' );
function register_cpt_tovary() {
$labels = array(
'name' => _x( 'Все товары', 'tovary' ),
'singular_name' => _x( 'Товар', 'tovary' ),
'add_new' => _x( 'Добавить товар', 'tovary' ),
'add_new_item' => _x( 'Добавить новый товар', 'tovary' ),
'edit_item' => _x( 'Редактировать товар', 'tovary' ),
'new_item' => _x( 'Новый товар', 'tovary' ),
'view_item' => _x( 'Посмотреть товар', 'tovary' ),
'search_items' => _x( 'Искать', 'tovary' ),
'not_found' => _x( 'Нет товаров', 'tovary' ),
'not_found_in_trash' => _x( 'Нет удаленных товаров', 'tovary' ),
'parent_item_colon' => _x( 'Родитель товаров:', 'tovary' ),
'menu_name' => _x( 'Товары', 'tovary' )
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'supports' => array( 'title' ),
'taxonomies' => array( 'catalog', 'poular' ),
'public' => true,
'map_meta_cap' => true,
'show_ui' => true,
'menu_position' => 10,
'menu_icon' => 'dashicons-cart',
'show_in_nav_menus' => false,
'exclude_from_search' => false,
'has_archive' => false,
'query_var' => true,
'rewrite' => array('slug' => 'catalog/%catalog%', 'with_front' => false),
'capability_type' => 'page'
);
register_post_type( 'tovary', $args );
}
add_action ( 'init', 'create_catalog_taxonomies' );
function create_catalog_taxonomies(){
// определяем заголовки для 'catalog'
$labels = array(
'name' => _x( 'Категории', 'taxonomy general name' ),
'singular_name' => _x( 'Категория', 'taxonomy singular name' ),
'search_items' => __( 'Поиск по категориям' ),
'all_items' => __( 'Все категории' ),
'parent_item' => __( 'Родительская категория' ),
'parent_item_colon' => __( 'Родительская категория:' ),
'edit_item' => __( 'Редактировать категорию' ),
'update_item' => __( 'Обновить категорию' ),
'add_new_item' => __( 'Добавить новую категорию' ),
'new_item_name' => __( 'Имя новой категории' ),
'menu_name' => __( 'Каталог' ),
);
// Добавляем древовидную таксономию 'catalog' (как категории)
register_taxonomy('catalog', array('tovary'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'rewrite' => array( 'hierarchical' => false )
));
}
/* Изменяем урл товаров */
add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample)
{
if ( false !== strpos( $post_link, '%catalog%' ) ) {
$event_type_term = wp_get_object_terms( $post->ID, 'catalog', array('orderby' => 'id') );
$post_link = str_replace( '%catalog%', $event_type_term[count($event_type_term) - 1]->slug, $post_link );
}
return $post_link;
}
add_rewrite_rule(
'catalog/([^/]+)/([^/]+)/?', 'index.php?catalog=$matches[1]&tovary=$matches[2]', 'top'
);