Ini membuat saya gila dan saya yakin itu sederhana tetapi tidak ada yang saya cari muncul dengan struktur sederhana (semuanya sangat kompleks).
Saya memiliki jenis pos kustom product_listing
dan taksonomi ubahsuaian product_cat
(yang hierarkis dan harus memiliki kategori seperti).
Saya hanya ingin URL saya terlihat seperti ini:
mysite.com/products/category1/product-name1
mysite.com/products/category2/product-name2
Tapi untuk kehidupan saya, apa pun yang saya lakukan, saya mendapatkan masalah yang ditakuti. Halaman berfungsi dengan baik dan Pos berfungsi dengan baik tetapi pos kustom saya tidak berfungsi dengan benar. Mereka muncul sebagai:
mysite.com/products/product-name1
mysite.com/products/product-name2
Yang sebenarnya berhasil ! Hanya saja saya ingin melihat taksonomi khusus saya di sana plus saya ingin dapat mengakses taxonomy.php
templat yang telah saya siapkan dengan masuk ke:
mysite.com/products/category1/
mysite.com/products/category2/
Tidak ada siput saya yang sama, saya juga tidak menginginkannya. Ini adalah jenis tulisan dan bagian taksonomi dari functions.php
file saya :
///// 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' ),
) );
}
Saya juga punya taksonomi khusus lain scents
yang idealnya saya ingin memiliki semacam url ramah tetapi saya lebih terbuka tentang ini. Saya mungkin ingin mengakses daftar semua aroma dengan pergi ke mysite.com/products/scents
tetapi mereka tidak harus spesifik kategori.
Adakah yang bisa membantu saya?
sumber
product/cat-name/product-name
? (perhatikan singularitas) Masalahnya adalah aturan penulisan ulang untuk pagination taksonomi tidak dipicu, karena itu tertangkap oleh aturan sebelumnya untuk produk tunggal!products/
) dan item tunggal (product/
). Dan tidak, saya akan menyimpan 'direktori depan' - ini membantu menjaga perbedaan yang jelas dari posting dan halaman, ditambah sebaliknya Anda mungkin berakhir dengan masalah kinerja (yaitu aturan penulisan ulang verbose).Terima kasih @TheDeadMechanic, jawaban Anda membantu saya, tetapi hanya sebagian. Saya ingin melakukan hal yang sama yang diminta @RodeoRamsey, tetapi dengan kategori bersarang (yaitu:)
mysite.com/products/category1/child-category-1/grandchild-category-1/product-name
dan solusi Anda tidak berhasil untuk itu.Saya akhirnya menemukan solusi yang diperluas untuk pertanyaan saya yang berfungsi, jadi jika orang lain membutuhkan kategori / subkategori bersarang, Anda dapat melihat solusi terperinci untuk pertanyaan saya sendiri. Semoga ini bisa membantu orang lain, dan terima kasih untuk langkah awal.
sumber
Saya tidak yakin wp mendukung struktur itu di luar kotak - tetapi Anda dapat dengan mudah membuat aturan penulisan ulang sendiri untuk melakukannya.
Lihat jawaban sebelumnya di sini Penulis url menulis ulang .
Anda dapat mengubah garis
untuk sesuatu seperti
bagian product_cat di sini mungkin berlebihan - saya tidak yakin apakah itu diperlukan.
Anda dapat menambahkan aturan apa pun yang Anda suka dan mereka akan memiliki prioritas di atas yang inbuilt.
sumber
Ya itu membuatku gila sebelum mengatur permalink untuk jenis posting khusus. Saya menemukan plugin untuk menangani jenis posting khusus. Ini sangat mudah digunakan. http://wordpress.org/extend/plugins/custom-post-permalinks/ WP harus menambahkan ini sebagai fitur inti! Leo
sumber
Sebenarnya, ini cukup mudah. Anda hanya perlu satu baris. Ini kode saya
Dan diterapkan pada taksonomi yang dihasilkan untuk Ulasan saya CPT dari GenerateWP.com. Saya menggunakan ini di situs WordPress saya sendiri, https://www.wpstarters.com
Yang Anda butuhkan jadi letakkan 'rewrite' => array ('hierarchical' => true),
sumber