[WordPress] Ajouter les Custom Post Types à wp_get_archives()
WordPress propose par défaut une fonction qui permet d’accéder aux archives des blogs : wp_get_archives()
.
Mais cette fonction à un défaut majeur depuis les dernières versions de la plateforme. Les Custom Post Types ne sont pas inclus dans les archives, seuls les billets de type « Post » le sont.
Voici un petit hack, à placer dans le fichier functions.php
de votre thème, qui permet d’inclure les types de billets de votre choix dans les archives.
add_filter( 'getarchives_where' , 'custom_getarchives_where_filter' , 10 , 2 ); function custom_getarchives_where_filter( $where , $r ) { $args = array( 'public' => true , '_builtin' => false ); $output="names"; $operator="and"; $post_types = get_post_types( $args , $output , $operator ); $post_types = array_merge( $post_types , array( 'post','video','surleweb' ) ); $post_types = "'" . implode( "' , '" , $post_types ) . "'"; return str_replace( "post_type="post"" , "post_type IN ( $post_types )" , $where ); }
Il vous suffit de remplacer les types que vous avez développé, à la ligne 6 (là où j’ai mis pour ma part video et surleweb.
via