En caso de que desee deshabilitar por completo la vista única de tipo de publicación personalizada en la interfaz pero poder mostrar la página de archivo, las cosas se están volviendo un poco complicadas.
La configuración publicly_queryable
en false
o rewrite
para false
evitará que se muestren vistas individuales y de archivo. No hay marca en los register_post_type
argumentos de la función para evitar crear solo reglas de reescritura de vista única.
https://github.com/WordPress/WordPress/blob/5.2.3/wp-includes/class-wp-post-type.php#L540
Sin embargo, puede eliminar la etiqueta de reescritura después de registrar su tipo de publicación y esto dejará intactas las reglas de reescritura de la vista de archivo, pero eliminará solo las reglas de reescritura de una sola vista.
/**
* 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' );
Otra ventaja es que a partir de ahora puede crear páginas simples de WordPress utilizando la estructura de enlace permanente de tipo de publicación de evento ( event/simple-page
) que puede ser útil en sitios web complejos.
Recuerde eliminar las reglas de reescritura después de la modificación del código.
get_current_user_id()
evalúa a 0.