Vous utilisez WordPress 3, et avez monté des sites plus merveilleux les uns que les autres en utilisant les Custom Post Type dans votre administration ?

Attention, si certains de vos post-types ne doivent pas être affichés en front, plusieurs choses à retenir, à la génération du post type :

Si le post type ne doit pas du tout apparaître en front, comme me l’a rappelé Raherian sur Twitter, on peut le désactiver à sa génération dans le code (register_post_type) en paramètrant public, has_archive et éventuellement rewrite à FALSE.
On peut également fournir un array à rewrite, avec le paramètre feeds à false pour éviter la génération de flux !

Edit : La méthode sale est toujours en dessous au cas où vous n’auriez pas la main sur la création du post type (Plugin mal fichu ou autre).

Un template single vide

Creez simplement un fichier de template du nom de single-[moncustomposttype].php, et ne mettez rien dedans. Le template single.php prendrait le relais dans l’absence de ce dernier, et afficherait votre post_content.

Un Flux RSS désactivé pour les Custom Post Types

Collez simplement le bout de code suivant dans votre fichier functions.php :

// N'active le RSS que pour le post-type post
function dk_rss_disable_feed() {
    global $post;
    if (!is_object($post) || !isset($post->post_type) || !in_array($post->post_type, array('post'))) {
        wp_die(__('No feed available, please visit our <a href="' . get_bloginfo('url') . '">homepage</a>!'));
    }
}
 
add_action('do_feed', 'dk_rss_disable_feed', 1);
add_action('do_feed_rdf', 'dk_rss_disable_feed', 1);
add_action('do_feed_rss', 'dk_rss_disable_feed', 1);
add_action('do_feed_rss2', 'dk_rss_disable_feed', 1);
add_action('do_feed_atom', 'dk_rss_disable_feed', 1);

Basé sur le script de WP-Engineer

Tags : , ,