La pagina singola del custom post type restituisce errore 404
Ho un custom post type chiamato slide. Ha contenuto e alcuni campi personalizzati. Voglio che WP mostri il template single.php o single-slide.php quando l'utente clicca sul link della pagina singola dello slide. Il problema è che WP restituisce un errore 404 quando tento di visualizzare la pagina singola dello slide.
Ecco il mio codice in functions.php:
function create_slide_post_type() {
$labels = array(
'name' => _x( 'Slides', 'i2sa' ),
'singular_name' => _x( 'Slide', 'i2sa' ),
'menu_name' => _x( 'Slides', 'i2sa' ),
'name_admin_bar' => _x( 'Slide', 'i2sa' ),
'add_new' => _x( 'Aggiungi', 'i2sa' ),
'add_new_item' => __( 'Aggiungi nuovo slide', 'i2sa' ),
'new_item' => __( 'Nuovo slide', 'i2sa' ),
'edit_item' => __( 'Modifica slide', 'i2sa' ),
'view_item' => __( 'Visualizza slide', 'i2sa' ),
'all_items' => __( 'Tutti gli slide', 'i2sa' ),
'search_items' => __( 'Cerca slide', 'i2sa' ),
'parent_item_colon' => __( 'Slide genitore:', 'i2sa' ),
'not_found' => __( 'Nessuno slide trovato.', 'i2sa' ),
'not_found_in_trash' => __( 'Nessuno slide trovato nel cestino.', 'i2sa' )
);
$args = array(
'labels' => $labels,
'description' => "Slides dell'azienda i2sa",
'public' => true,
'exclude_from_search'=> true,
'publicly_queryable' => false,
'show_in_nav_menus' => false,
'menu_icon' => 'dashicons-images-alt2',
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'slide' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
);
register_post_type( 'slide', $args );
flush_rewrite_rules();
}
add_action( 'init', 'create_slide_post_type' );
Dovresti impostare l'argomento publicly_queryable su true quando registri il tuo custom post type.
NOTA BENE: Aggiungi flush_rewrite_rules(), aggiorna la pagina una o due volte e RIMUOVILO IMMEDIATAMENTE. NON devi mantenere flush_rewrite_rules() a meno che non sia previsto come indicato nel codex.
questa è un'operazione costosa quindi dovrebbe essere usata solo quando strettamente necessario
Oh wow, ha funzionato anche qui. Non era per niente ovvio. Grazie!
Toby Deshane
Svuota le regole di riscrittura dal pannello di controllo -> Impostazioni->Pagina dei permalink. Clicca sul pulsante salva e poi controlla la pagina dei dettagli dello slide. Ora dovrebbe funzionare. In alternativa puoi scrivere questo codice flush_rewrite_rules() nella tua funzione create_slide_post_type(). Vedi il Codex
Fare clic sul pulsante Salva nei Permalink ha funzionato per me. Dopo aver spostato il sito su un server di produzione, tutti i link dei custom post type si interrompevano. Questo ha risolto il problema. Grazie!
cbloss793
Salvare i permalink funziona. Ma per favore non aggiungere flush_rewrite_rules() dopo le chiamate a register_post_type() nel codice di produzione (cioè all'interno di create_slide_post_type). Usa l'hook di attivazione del plugin o un valore option per determinare che hai aggiunto un nuovo post type
Philipp