Saya tahu orang-orang telah menanyakan hal ini sebelumnya dan telah menambahkan jenis posting kustom, dan menulis ulang untuk permalink.
Masalahnya adalah saya memiliki 340 kategori yang ada yang ingin terus saya gunakan. Saya dulu bisa melihat / kategori / subkategori / postname
Sekarang saya memiliki siput customposttype / postname. Memilih kategori tidak lagi muncul di permalink ... Saya belum mengubah pengaturan permalink di admin menjadi sesuatu yang berbeda.
Apakah ada sesuatu yang saya lewatkan atau perlu tambahkan ke kode ini?
function jcj_club_post_types() {
register_post_type( 'jcj_club', array(
'labels' => array(
'name' => __( 'Jazz Clubs' ),
'singular_name' => __( 'Jazz Club' ),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Add New Jazz Club' ),
'edit' => __( 'Edit' ),
'edit_item' => __( 'Edit Jazz Clubs' ),
'new_item' => __( 'New Jazz Club' ),
'view' => __( 'View Jazz Club' ),
'view_item' => __( 'View Jazz Club' ),
'search_items' => __( 'Search Jazz Clubs' ),
'not_found' => __( 'No jazz clubs found' ),
'not_found_in_trash' => __( 'No jazz clubs found in Trash' ),
'parent' => __( 'Parent Jazz Club' ),
),
'public' => true,
'show_ui' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'menu_position' => 5,
'query_var' => true,
'supports' => array(
'title',
'editor',
'comments',
'revisions',
'trackbacks',
'author',
'excerpt',
'thumbnail',
'custom-fields',
),
'rewrite' => array( 'slug' => 'jazz-clubs-in', 'with_front' => true ),
'taxonomies' => array( 'category','post_tag'),
'can_export' => true,
)
);
Jawaban:
Ada 2 titik serangan yang harus dibahas ketika Anda menambahkan aturan penulisan ulang jenis posting khusus:
Aturan penulisan ulang
Ini terjadi ketika aturan penulisan ulang dibuat
wp-includes/rewrite.php
diWP_Rewrite::rewrite_rules()
. WordPress memungkinkan Anda untuk memfilter aturan penulisan ulang untuk elemen tertentu seperti posting, halaman, dan berbagai jenis arsip. Di mana Anda melihatposttype_rewrite_rules
yangposttype
bagian harus merupakan nama dari jenis posting kustom Anda. Atau Anda dapat menggunakanpost_rewrite_rules
filter selama Anda tidak melenyapkan aturan pos standar juga.Selanjutnya kita membutuhkan fungsi untuk benar-benar menghasilkan aturan penulisan ulang:
Hal utama yang harus diperhatikan di sini jika Anda memutuskan untuk bermain-main adalah boolean 'Walk directories'. Ini menghasilkan aturan penulisan ulang untuk setiap segmen permastruct dan dapat menyebabkan ketidaksesuaian aturan penulisan ulang. Ketika URL WordPress diminta, susunan aturan penulisan ulang diperiksa dari atas ke bawah. Segera setelah ditemukan kecocokan, itu akan memuat apa pun yang telah ditemukan, jadi misalnya jika permastruct Anda memiliki kecocokan serakah misalnya. karena
/%category%/%postname%/
dan berjalan direktori ada di dalamnya akan menghasilkan aturan penulisan ulang untuk kedua/%category%/%postname%/
DAN/%category%/
yang akan cocok dengan apa pun. Jika itu terjadi terlalu dini, Anda kacau.Permalinks
Ini adalah fungsi yang mem-parsing permalink jenis posting dan mengubah permastruct (misalnya '/% tahun% /% monthnum% /% postname% /') menjadi URL yang sebenarnya.
Bagian selanjutnya adalah contoh sederhana dari apa yang idealnya menjadi versi
get_permalink()
fungsi yang ditemukan diwp-includes/link-template.php
. Permalinks pos kustom dibuat olehget_post_permalink()
yang merupakan versi yang banyak dipermudahget_permalink()
.get_post_permalink()
difilter olehpost_type_link
jadi kami menggunakannya untuk membuat permastruktur khusus.Seperti yang disebutkan ini, kasus yang sangat sederhana untuk membuat aturan penulisan ulang dan permalink yang khusus, dan tidak terlalu fleksibel tetapi harus cukup untuk Anda mulai.
Curang
Saya menulis sebuah plugin yang memungkinkan Anda mendefinisikan permastructs untuk setiap jenis posting kustom, tetapi seperti Anda dapat menggunakan
%category%
dalam struktur permalink untuk posting plugin saya mendukung%custom_taxonomy_name%
untuk setiap taksonomi kustom yang Anda miliki juga di manacustom_taxonomy_name
nama taksonomi Anda misalnya.%club%
.Ini akan berfungsi seperti yang Anda harapkan dengan taksonomi hierarkis / non-hierarkis.
http://wordpress.org/extend/plugins/wp-permastructure/
sumber
$permalink = home_url(...
diganti oleh$permalink = user_trailingslashit(...
dan tidak pernah digunakan. Atau apakah saya melewatkan sesuatu?$post_link
bahkan tidak didefinisikan. Apakah itu seharusnya$permalink = user_trailingslashit( $permalink, 'single' );
?$permalink
tidak$post_link
. Cheers :)Dapatkan solusinya!
Untuk memiliki permalink hierarkis untuk jenis posting kustom, pasang Permalink Jenis Posting Kustom ( https://wordpress.org/plugins/custom-post-type-permalinks/ ) plugin.
Perbarui jenis posting terdaftar. Saya memiliki nama jenis posting sebagai pusat bantuan
Dan di sini adalah taksonomi terdaftar
Baris ini membuat permalink Anda berfungsi
Anda dapat menghapus
%post_id%
dan menyimpannya/%help_centre_category%/%postname%/"
Jangan lupa untuk membersihkan permalink dari dasbor.
sumber
Saya telah menemukan SOLUSI !!!
(Setelah penelitian tanpa akhir .. Saya dapat memiliki permalink TYPE POST CUSTOM seperti:
example.com/category/sub_category/my-post-name
di sini kode (dalam functions.php atau plugin):
sumber
Anda memiliki beberapa kesalahan dengan kode Anda. Saya membersihkan kode Anda yang sudah ada:
Ganti kode Anda dengan kode di atas dan lihat apakah itu berfungsi. Balas kembali jika Anda memiliki pertanyaan lebih lanjut dan saya akan mencoba membantu.
EDIT:
Saya perhatikan saya ditinggalkan
'has_archive' => true
.sumber