Nel caso in cui desideri disabilitare completamente la visualizzazione singola del tipo di post personalizzato sul frontend, ma essere in grado di visualizzare la pagina di archivio, le cose stanno diventando un po 'complicate.
L'impostazione publicly_queryable
su false
o rewrite
to false
impedirà la visualizzazione della visualizzazione singola e di archivio. Non è presente alcun flag negli register_post_type
argomenti della funzione per impedire la creazione di regole di riscrittura a vista singola.
https://github.com/WordPress/WordPress/blob/5.2.3/wp-includes/class-wp-post-type.php#L540
Tuttavia, puoi rimuovere il tag di riscrittura dopo aver registrato il tuo tipo di post e questo lascerà intatte le regole di riscrittura della vista archivio ma rimuoverà solo le regole di riscrittura a vista singola.
/**
* 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' );
Un altro vantaggio è che d'ora in poi è possibile creare semplici pagine WordPress utilizzando la struttura del permalink ( event/simple-page
) di tipo post evento che può essere utile in siti Web complessi.
Ricorda di cancellare le regole di riscrittura dopo la modifica del codice.
get_current_user_id()
valutato a 0.