Penulisan Ulang URL Jenis Tulisan Kustom?

32

Saya menyiapkan jenis pos khusus untuk proyek portofolio saya. URL utama untuk ini terletak di/projects/

Sekarang saya juga telah mengatur permalink posting blog saya untuk /articles/*/untuk struktur permalink. Ini berarti ketika saya pergi untuk melihat proyek portofolio URL berubah/articles/projects/project-name/

Saya tahu pasti ada cara untuk menulis ulang permalinks hanya untuk jenis posting khusus proyek saya. Tapi saya tidak terbiasa dengan sintaks dalam mendeklarasikan URL slug - akan menghargai bantuan yang bisa saya dapatkan!

Jake
sumber

Jawaban:

42

Ketika Anda mendaftarkan jenis posting kustom, Anda harus menentukan bahwa aturan penulisan ulang tidak harus diawali dengan struktur URL yang ada.

Singkatnya, ini berarti bahwa baris ini dalam register_post_typepanggilan Anda :

'rewrite' => array('slug' => 'projects'),

harus berubah menjadi ini:

'rewrite' => array('slug' => 'projects','with_front' => false),

Untuk info lebih lanjut, periksa rewriteargumen dari entri codex aktifregister_post_type

sunting: pastikan saja, setelah memperbarui kode, Anda menghapus aturan penulisan ulang dengan mengunjungi Pengaturan> Permalinks. Kalau tidak, Anda masih akan melihat tautan lama.

0x61696f
sumber
brilian terima kasih! Hanya untuk mengklarifikasi, semua yang perlu saya lakukan untuk aturan pembilasan adalah pergi ke halaman Pengaturan-> Permalinks dan tekan "Simpan Perubahan", benar?
Jake
4
Anda bahkan tidak perlu menyimpan perubahan. Cukup dengan membuka halaman pengaturan Permalinks (yaitu, jika file .htaccess Anda dapat ditulisi. Jika tidak, tekan simpan perubahan dan salin secara manual kode yang dikembalikan di .htaccess Anda)
0x61696f
2
Ini sepertinya tidak berhasil untuk saya. Posting proyek saya masih akan example.com/projects/title-of-post. Saya mengunjungi halaman Permalinks juga. Apa yang menyebabkan ini? Tidak ada aturan penulisan ulang di blog saya htaccess.
Desi
Wow, terima kasih itu bagian yang hilang! Mengunjungi halaman permalinks tidak berfungsi, tetapi hanya
MENYIMPAN
Saya terus mengubah hal-hal tanpa menyiram aturan penulisan ulang. Terima kasih atas tipnya!
Tan-007
15

Saya memiliki masalah ini secara harfiah 3 hari yang lalu, kemudian saya menemukan seri di wp.tutsplus.com . Saya menukar kode saya sendiri untuk mengakomodasi pertanyaan Anda dengan lebih baik, tetapi inilah yang akhirnya saya ikuti setelah mengikuti seri. Juga, perlu diingat bahwa ini tidak diuji.

// sets custom post type
function my_custom_post_type() {
    register_post_type('Projects', array(   
       'label' => 'Projects','description' => '',
       'public' => true,
       'show_ui' => true,
       'show_in_menu' => true,
       'capability_type' => 'post',
       'hierarchical' => false,
       'publicly_queryable' => true,
       'rewrite' => false,
       'query_var' => true,
       'has_archive' => true,
       'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'),
       'taxonomies' => array('category','post_tag'),
       // there are a lot more available arguments, but the above is plenty for now
    ));
}

add_action('init', 'my_custom_post_type');

// rewrites custom post type name
global $wp_rewrite;
$projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/';
$wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project=");
$wp_rewrite->add_permastruct('projects', $projects_structure, false);

Secara teoritis, Anda bisa menukar apa pun yang Anda inginkan dalam URL yang disimpan dalam $projects_structurevariabel, apa yang ada hanya apa yang akhirnya saya gunakan.

Semoga berhasil, dan seperti biasa - pastikan untuk kembali dan beri tahu kami cara kerjanya! :)

cmegown
sumber
1
Jawaban yang hanya terdiri dari tautan pada umumnya dianggap tidak membantu karena sumber daya itu dapat (dan mungkin akan) tidak ada lagi di masa depan. Ringkas kontennya.
chrisguitarguy
Cukup adil, saya akan mengerjakan revisi yang tepat.
cmegown
11
Di sana, sekarang jawaban saya berisi kode serupa dengan kode kerja yang saya miliki di lingkungan produksi yang berhasil menulis ulang URL jenis pos khusus. Semoga ini terbukti lebih membantu!
cmegown