final (ou à la fin si pas de ?>) function nio_register_note_olfactive() { $labels = array( 'name' => 'Notes Olfactives', 'singular_name' => 'Note Olfactive', 'add_new' => 'Ajouter une note', 'add_new_item' => 'Ajouter une note olfactive', 'edit_item' => 'Modifier la note', 'new_item' => 'Nouvelle note', 'view_item' => 'Voir la note', 'search_items' => 'Rechercher', 'not_found' => 'Aucune note trouvée', 'menu_name' => 'Signatures Olfactives', ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => false, // ← CORRIGÉ : false car page WordPress manuelle 'rewrite' => array( 'slug' => 'signatures-olfactives' ), 'menu_icon' => 'dashicons-coffee', 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ), 'show_in_rest' => true, 'menu_position' => 5, ); register_post_type( 'note_olfactive', $args ); } add_action( 'init', 'nio_register_note_olfactive' ); // ═══════════════════════════════════════════ // NIÕ — SHORTCODE PAGE INDEX SIGNATURES // ═══════════════════════════════════════════ // Usage : [nio_signatures_index] // Affiche toutes les notes en accordéon tri A-Z avec ancres pour la nav alpha. function nio_signatures_index_shortcode() { $args = array( 'post_type' => 'note_olfactive', 'posts_per_page' => -1, 'post_status' => 'publish', 'orderby' => 'title', 'order' => 'ASC', ); $notes = new WP_Query( $args ); if ( ! $notes->have_posts() ) { return '

Aucune note olfactive disponible pour le moment.

'; } $current_letter = ''; $output = '
'; while ( $notes->have_posts() ) { $notes->the_post(); $first_letter = strtoupper( mb_substr( get_the_title(), 0, 1 ) ); // Séparateur alphabétique avec ancre pour la navigation alpha if ( $first_letter !== $current_letter ) { if ( $current_letter !== '' ) { $output .= '
'; // ferme le groupe précédent } $output .= '
'; $output .= '' . esc_html( $first_letter ) . ''; $current_letter = $first_letter; } $excerpt = get_the_excerpt(); $permalink = esc_url( get_permalink() ); $famille = get_post_meta( get_the_ID(), 'famille_olfactive', true ); $output .= '
'; $output .= ''; $output .= '' . esc_html( get_the_title() ) . ''; if ( $famille ) { $output .= '' . esc_html( $famille ) . ''; } $output .= ''; $output .= '
'; if ( $excerpt ) { $output .= '

' . nl2br( esc_html( $excerpt ) ) . '

'; } $output .= 'En savoir plus →'; $output .= '
'; } $output .= '
'; // ferme dernier groupe + index wp_reset_postdata(); return $output; } add_shortcode( 'nio_signatures_index', 'nio_signatures_index_shortcode' ); // ═══════════════════════════════════════════ // NIÕ — NAVIGATION ALPHABÉTIQUE // ═══════════════════════════════════════════ // Usage : [nio_alpha_nav] // Affiche les 26 lettres. Lettres actives = lien ancre vers le groupe. // Lettres inactives = grisées, non cliquables. function nio_alpha_nav_shortcode() { $args = array( 'post_type' => 'note_olfactive', 'posts_per_page' => -1, 'post_status' => 'publish', 'orderby' => 'title', 'order' => 'ASC', 'fields' => 'ids', ); $ids = get_posts( $args ); $letters = array(); foreach ( $ids as $id ) { $title = get_the_title( $id ); $letter = strtoupper( mb_substr( $title, 0, 1 ) ); $letters[ $letter ] = $letter; } ksort( $letters ); $output = ''; return $output; } add_shortcode( 'nio_alpha_nav', 'nio_alpha_nav_shortcode' ); // ═══════════════════════════════════════════ // NIÕ — META BOX : FAMILLE OLFACTIVE // ═══════════════════════════════════════════ function nio_add_meta_box_famille() { add_meta_box( 'nio_famille_olfactive', 'Famille olfactive', 'nio_render_meta_box_famille', 'note_olfactive', 'side', 'default' ); } add_action( 'add_meta_boxes', 'nio_add_meta_box_famille' ); function nio_render_meta_box_famille( $post ) { wp_nonce_field( 'nio_famille_meta', 'nio_famille_nonce' ); $value = get_post_meta( $post->ID, 'famille_olfactive', true ); echo ''; } function nio_save_meta_box_famille( $post_id ) { // CORRIGÉ : vérifie le post type AVANT tout if ( get_post_type( $post_id ) !== 'note_olfactive' ) { return; } // CORRIGÉ : vérifie le nonce if ( ! isset( $_POST['nio_famille_nonce'] ) || ! wp_verify_nonce( $_POST['nio_famille_nonce'], 'nio_famille_meta' ) ) { return; } // Évite les sauvegardes automatiques if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Vérifie les permissions if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } if ( isset( $_POST['famille_olfactive'] ) ) { update_post_meta( $post_id, 'famille_olfactive', sanitize_text_field( wp_unslash( $_POST['famille_olfactive'] ) ) ); } } add_action( 'save_post', 'nio_save_meta_box_famille' ); Page non trouvée • Niõ

Oups ! Cette page est introuvable.

Il semble que rien n’ait été trouvé à cet emplacement. Peut-être souhaitez-vous essayer de chercher autre chose ?