web-dev-qa-db-fra.com

WP 3.1 - les pages d'archives pour les types de contenu personnalisés possibles maintenant sans plugin?

J'ai remarqué que WP 3.1 est supposé avoir ' de nouvelles fonctionnalités de CMS telles que les pages d'archives pour les types de contenu personnalisés ', mais je ne vois pas encore si cette fonctionnalité est implémentée?

J'utilise un plugin appelé "Archives de type de message personnalisé simple" pour afficher les messages personnalisés à l'URL http://www.domainname.com/custom-post-type/ , mais je voulais utiliser le capacité construite en considérant qu'elle est "maintenant possible".

Quelqu'un at-il eu le même problème?

Merci

osu

PS J'utilise archive-custom_post_type_name.php pour essayer de styliser ma page d'archive de type publication personnalisée

3
Osu

Oui, il vous suffira de définir le paramètre has_archive sur true ou votre slug choisi lors de l’enregistrement de votre type de publication personnalisé.

Donc, premièrement, ajoutez le paramètre has_archive à votre type de message, voici un exemple ...

add_action( 'init', 'question_10706_init' );

function question_10706_init() {

    register_post_type( 'example', array(
        'labels' => array(
            'name' => __('Examples'),
            'singular_name' => __('Example')
            ),
        'public' => true,
        'show_ui' => true,
        'rewrite' => array(
            'slug' => 'example',
            'with_front' => false
            ),
        //'has_archive' => true // Will use the post type slug, ie. example
        //'has_archive' => 'my-example-archive' // Explicitly setting the archive slug
    ) );

}

Le paramètre has_archive prend en charge les paramètres suivants.

  1. false (par défaut)

    Pas d'archive

  2. vrai

    L'URL de l'archive est formulée à partir du type de message slug

    www.example.com/example/

  3. ' string '

    L'URL de l'archive est explicitement définie sur le slug que vous avez fourni

    www.example.com/my-example-archive/

Une fois que vous avez ajouté le paramètre, accédez à la page de lien permanent, cela régénérera les règles de réécriture, en tenant compte de l'archive personnalisée de type publication.

Enfin, créez un modèle archive-{$post_type}.php pour gérer cette archive (ce pourrait être un simple copier-> coller de votre archive existante, effectuez les ajustements nécessaires).
Notant que ce {$post_type} représenterait bien entendu le slug de votre type de message actuel.

Informations provenant:

J'espère que cela pourra aider. :)

13
t31os

Oui, cela est implémenté dans la version 3.1, vous devez vous assurer que les arguments passés à register_post_type ont l'indicateur has_archive défini sur true. Voir la page Codex à ce sujet.

Vous devrez peut-être également consulter votre page de paramètres de permalien et les renvoyer, ce qui semble améliorer les choses souvent.

1
Simon Blackbourn