web-dev-qa-db-fra.com

Aperçu des types de publication/personnalisation dans les archives

J'ai quelques types de messages personnalisés sur mon site Web. L'un d'eux est un curseur de page de garde. J'ajoute du texte, des images, des liens et dès que je publie, le CPT apparaît sous forme de diapositive et je suis un bon campeur. Le problème est que je dois prévisualiser la diapositive avant sa diffusion. Je peux prévisualiser cette publication spécifique du CPT via le bouton de prévisualisation de la publication, mais évidemment, je vois la diapositive proprement dite et non son apparence, dans ce curseur, cette galerie ou ces archives.

Je cherche une solution pour prévisualiser les brouillons dans une archive. Toute aide sera très appréciée.

1
Jukov

La méthode get_posts de WP_Query permet d’afficher les posts lourds. Avant de faire quoi que ce soit, cependant, il existe un crochet appelé pre_get_posts auquel vous pouvez vous connecter. La fonction accrochée recevra une référence (pointeur) à l'objet de requête en cours. Ainsi, vous pouvez modifier les vars de requête pour qu'ils soient comme vous le souhaitez.

Alors...

<?php
add_action( 'pre_get_posts', 'wpse33020_pre_get_posts' );
function wpse33020_pre_get_posts( $query_obj )
{
    // get out of here if this is the admin area
    if( is_admin() ) return;

    // if this isn't an admin, bail
    if( ! current_user_can( 'manage_options' ) ) return;

    // if this isn't your slide post type, bail
    if( ! isset( $query_obj->query_vars['post_type'] ) || 'slider' != $query_obj->query_vars['post_type'] ) return;

    // change our query object to include any post status
    $query_obj->query_vars['post_status'] = 'any';
}

Vous devrez probablement changer votre post_type de slider pour le nom de votre curseur CPT.

En tant que plugin: https://Gist.github.com/1343219

4
chrisguitarguy