Jika Anda ingin sepenuhnya menonaktifkan tampilan tunggal jenis posting kustom di frontend tetapi dapat menampilkan hal-hal halaman arsip semakin rumit.
Pengaturan publicly_queryable
ke false
atau rewrite
ke false
akan mencegah untuk menampilkan tampilan tunggal dan arsip. Tidak ada flag dalam register_post_type
argumen 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.