Jika Anda ingin sepenuhnya menonaktifkan tampilan tunggal jenis posting kustom di frontend tetapi dapat menampilkan hal-hal halaman arsip semakin rumit.
Pengaturan publicly_queryableke falseatau rewriteke falseakan mencegah untuk menampilkan tampilan tunggal dan arsip. Tidak ada flag dalam register_post_typeargumen fungsi untuk mencegah pembuatan hanya aturan penulisan ulang tampilan tunggal.
https://github.com/WordPress/WordPress/blob/5.2.3/wp-includes/class-wp-post-type.php#L540
Namun Anda dapat menghapus tag penulisan ulang setelah mendaftarkan jenis posting Anda dan ini akan membuat aturan penulisan ulang tampilan arsip tidak tersentuh tetapi hanya menghapus aturan penulisan ulang tampilan tunggal.
/**
* Register event post type
*/
function wpse_128636_register_event_post_type() {
$labels = array(
'name' => __( 'Events' ),
'singular_name' => __( 'Event' ),
'add_new' => __( 'Add new' ),
'add_new_item' => __( 'Add new' ),
'edit_item' => __( 'Edit' ),
'new_item' => __( 'New' ),
'view_item' => __( 'View' ),
'search_items' => __( 'Search' ),
'not_found' => __( 'Not found' ),
'not_found_in_trash' => __( 'Not found Events in trash' ),
'parent_item_colon' => __( 'Parent' ),
'menu_name' => __( 'Events' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => false,
'supports' => array( 'title', 'page-attributes' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'event'),
'capability_type' => 'post',
);
register_post_type( 'event', $args );
remove_rewrite_tag( '%event%' ); // This line will remove event rewrite rules for single view
}
add_action( 'init', 'wpse_128636_register_event_post_type' );
Bonus lain adalah bahwa mulai sekarang Anda dapat membuat halaman WordPress sederhana menggunakan struktur permalink jenis posting ( event/simple-page) yang dapat membantu di situs web yang kompleks.
Ingatlah untuk menyiram aturan penulisan ulang setelah modifikasi kode.
get_current_user_id()evaluasi ke 0.