ID, '_archive_page', true ); ?>

Choisissez la cible de cette page

ID, 'archive_page-nonce') ; } //sauvegarde de la metabox add_action( 'save_post', 'my_save_post' ); function my_save_post( $post_ID ){ // on retourne rien du tout s'il s'agit d'une sauvegarde automatique if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_ID; if ( isset( $_POST[ 'archive_page' ] ) ) { check_admin_referer( 'archive_page-save_' . $_POST[ 'post_ID' ], 'archive_page-nonce' ); if( isset( $_POST[ 'archive_page' ] ) ) { $target = $_POST[ 'archive_page' ]; global $wpdb; $suppr = $wpdb->get_results( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_archive_page' AND meta_value = '%s'"), $target ); foreach( $suppr as $s ) delete_post_meta( $s->post_id, '_archive_page' ); update_post_meta( $_POST[ 'post_ID' ], '_archive_page', $_POST[ 'archive_page' ] ); } } } //présentation de l'archive function presentation_archive() { $post_type_obj = get_queried_object(); $target = $post_type_obj->name; $presentation = new WP_Query( array( 'post_type' => 'page', 'meta_query' => array( array( 'key' => '_archive_page', 'value' => $target, 'compare' => '=' ) ) ) ); if( $presentation->have_posts() ) : $presentation->the_post(); the_title( '

', '

' ); echo '
'; echo the_content(); echo '
'; endif; } // filtre permalien add_filter( 'page_link', 'archive_permalink', 10, 2 ); function archive_permalink( $lien, $id ) { if( '' != ( $archive = get_post_meta( $id, '_archive_page', true ) ) && ! is_admin() ) return get_post_type_archive_link( $archive ); else return $lien; } // redirect add_action( 'template_redirect', 'redirect_to_archive' ); function redirect_to_archive() { if( is_page() && ! is_admin() ){ global $post; if( '' != ( $archive = get_post_meta( $post->ID, '_archive_page', true ) ) ) { wp_redirect( get_post_type_archive_link( $archive ), 301 ); exit(); } } } //filtre classes nav menu add_filter( 'nav_menu_css_class', 'add_my_archive_menu_classes', 10 , 3 ); function add_my_archive_menu_classes( $classes , $item, $args ) { if( '' != ( $archive = get_post_meta( $item->object_id, '_archive_page', true ) ) ) { if( is_post_type_archive( $archive ) ) $classes[] = 'current-menu-item'; if( is_singular( $archive ) ) $classes[] = 'current-menu-ancestor'; } return $classes; }