web-dev-qa-db-fra.com

Belles URL de flux RSS pour chaque type de message personnalisé

Par défaut, WP semble afficher tous les articles de tous types dans le flux RSS principal. Vous devez ajouter une variable de requête post_type pour afficher la publication d'un certain type ...

Alors, comment puis-je transformer ceci:

http://site.com/feed/?post_type=book

dans

http://site.com/feed/books/

?

Et si possible réécrire http://site.com/feed/ en http://site.com/feed/blog/, ce qui ne devrait afficher que les publications normales ...

2
onetrickpony

Si vous définissez 'has_archive' => TRUE dans register_post_type(), le type de publication aura son propre flux sur /books/feed/ et ses éléments ne sont pas inclus dans le flux principal.

Exemple de plugin

<?php
/*
Plugin Name: WPSE13006 feed for CPT demo
*/
! defined( 'ABSPATH' ) and exit;

add_action( 'init', 'wpse13006_register' );

// Call wp-admin/options-permalink.php once after activation to make permalinks work
function wpse13006_register()
{
    register_post_type(
        'wpse13006'
    ,   array (
            'has_archive'         => TRUE
        ,   'label'               => 'wpse13006'
        ,   'public'              => TRUE
        ,   'publicly_queryable'  => TRUE
        ,   'query_var'           => 'wpse13006'
        ,   'rewrite'             => array ( 'slug' => 'wpse13006' )
        ,   'show_ui'             => TRUE
        ,   'show_in_menu'        => TRUE
        ,   'supports'            => array ( 'title', 'editor' )
        )
    );
}

Créez un article, publiez-le et affichez-le. Si vous remontez d’un niveau à /wpse13006/ maintenant, vous trouverez le flux à /wpse13006/feed/. La publication ne sera pas affichée dans le flux principal.

3
fuxia