Esto me está volviendo loco y estoy seguro de que es simple, pero nada de lo que busco tiene una estructura simple (todo es muy complejo).
Tengo un tipo de publicación personalizado product_listing
y una taxonomía personalizada de product_cat
(que es jerárquica y debería tener categorías similares).
Simplemente quiero que mis URL se vean así:
mysite.com/products/category1/product-name1
mysite.com/products/category2/product-name2
Pero para mi vida, no importa lo que haga, me sale el temido problema 404. Las páginas funcionan bien y las publicaciones funcionan bien, pero mis publicaciones personalizadas no funcionan correctamente. Se muestran como:
mysite.com/products/product-name1
mysite.com/products/product-name2
Que realmente funciona ! Es solo que quiero ver mi taxonomía personalizada allí y quiero poder acceder a la taxonomy.php
plantilla que configuré yendo a:
mysite.com/products/category1/
mysite.com/products/category2/
Ninguna de mis babosas es igual, ni quiero que lo sean. Aquí está el tipo de publicación y la parte de taxonomía de mi functions.php
archivo:
///// CUSTOM POST TYPES /////
// register the new post type
register_post_type( 'product_listing', array(
'labels' => array(
'name' => __( 'Products' ),
'singular_name' => __( 'Product' ),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Create New Product' ),
'edit' => __( 'Edit' ),
'edit_item' => __( 'Edit Product' ),
'new_item' => __( 'New Product' ),
'view' => __( 'View Products' ),
'view_item' => __( 'View Product' ),
'search_items' => __( 'Search Products' ),
'not_found' => __( 'No products found' ),
'not_found_in_trash' => __( 'No products found in trash' ),
'parent' => __( 'Parent Product' ),
),
'description' => __( 'This is where you can create new products on your site.' ),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'publicly_queryable' => true,
'exclude_from_search' => false,
'menu_position' => 2,
'menu_icon' => get_stylesheet_directory_uri() . '/images/tag_orange.png',
'hierarchical' => true,
'_builtin' => false, // It's a custom post type, not built in!
'rewrite' => array( 'slug' => 'products', 'with_front' => true ),
'query_var' => true,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions' ),
) );
//hook into the init action and call create_book_taxonomies when it fires
add_action( 'init', 'create_product_taxonomies', 0 );
//add_action('admin_init', 'flush_rewrite_rules');
//create two taxonomies, genres and writers for the post type "book"
function create_product_taxonomies() {
// Add new taxonomy, make it hierarchical (like categories)
$labels = array(
'name' => _x( 'Categories', 'taxonomy general name' ),
'singular_name' => _x( 'Category', 'taxonomy singular name' ),
'search_items' => __( 'Search Categories' ),
'all_items' => __( 'All Categories' ),
'parent_item' => __( 'Parent Categories' ),
'parent_item_colon' => __( 'Parent Categories:' ),
'edit_item' => __( 'Edit Category' ),
'update_item' => __( 'Update Category' ),
'add_new_item' => __( 'Add New Category' ),
'new_item_name' => __( 'New Category Name' ),
'menu_name' => __( 'Category' ),
);
register_taxonomy( 'product_cat', array( 'product_listing' ), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
//'rewrite' => true,
'rewrite' => array( 'slug' => '%category%', 'with_front' => true ),
) );
// Add new taxonomy, NOT hierarchical (like tags)
$labels = array(
'name' => _x( 'Scents', 'taxonomy general name' ),
'singular_name' => _x( 'Scent', 'taxonomy singular name' ),
'search_items' => __( 'Search Scents' ),
'popular_items' => __( 'Popular Scents' ),
'all_items' => __( 'All Scents' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Scent' ),
'update_item' => __( 'Update Scent' ),
'add_new_item' => __( 'Add New Scent' ),
'new_item_name' => __( 'New Scent Name' ),
'separate_items_with_commas' => __( 'Separate scents with commas' ),
'add_or_remove_items' => __( 'Add or remove scents' ),
'choose_from_most_used' => __( 'Choose from the most used scents' ),
'menu_name' => __( 'Scents' ),
);
register_taxonomy( 'scent', 'product_listing', array(
'hierarchical' => false,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
//'rewrite' => array( 'slug' => 'scents' ),
) );
}
También tengo otra taxonomía personalizada de la scents
que idealmente me gustaría tener algún tipo de URL amigable, pero estoy más abierto a esto. Tal vez me gustaría acceder a una lista de todos los olores yendo a, mysite.com/products/scents
pero no tienen que ser específicos de la categoría.
Alguien puede ayudarme?
fuente
product/cat-name/product-name
? (tenga en cuenta la singularidad) El problema es que la regla de reescritura para la paginación de taxonomía no se activa, ¡porque queda atrapada por una regla anterior para productos individuales!products/
) y elementos singulares (product/
). Y no, mantendría el 'directorio frontal'; ayuda a mantener una distinción clara de publicaciones y páginas, además de lo contrario, podría terminar con problemas de rendimiento (es decir, reglas detalladas de reescritura).