web-dev-qa-db-fra.com

Afficher le type de message personnalisé filtré par catégorie

Je voudrais avoir un type d'article personnalisé qui contient plusieurs curseurs à afficher dans chaque page de catégorie (category.php exacte), un pour chaque comme prévu.

Tous les curseurs ont été affectés à la catégorie associée.

Actuellement, j'utilise http://wordpress.org/plugins/custom-post-type-ui/ pour créer un type de message personnalisé appelé: slider.

Et j'ai le code ci-dessous pour afficher tous les messages d'une catégorie tout en appuyant sur le nom du chat dans le menu. Cela fonctionne bien sûr.

<?php $cat = get_the_category(); $cat = $cat[0]; ?>
<?php query_posts($query_string . '&cat='. $cat->cat_ID .''); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php the_content(); ?> 
  <?php endwhile; else: endif; ?>

Mais le problème est que je ne peux pas filtrer le curseur (type de message personnalisé) par catégorie.

Une fois que j'ai appelé le wp_query, il déploie tous les curseurs et ignore mon argument get cat id.

Je pensais qu'il ne devrait afficher que le curseur dans certaines catégories, pas toutes.

Je demande donc une requête pour appeler le curseur de droite uniquement.

1
Cwkin7

J'ai travaillé sur votre problème et j'ai trouvé une solution (dans la mesure où j'ai bien compris le problème).

Cela fonctionne comme ceci:

Enregistrer un type de message appelé: curseurs avec une taxonomie appelée curseur .

Cela créera un type de publication dans lequel vous pourrez stocker tous vos curseurs et les classer avec cette taxonomie personnalisée appelée slider.

CODE pour enregistrer le type de publication. ( cela va dans functions.php )

//Custom Post Type Sliders
add_action('init','post_type_slider');
function post_type_slider(){
    register_post_type('sliders',
        array(
            'labels' => array(
                'name'          =>  'Sliders',
                'singular_name' =>  'Sliders',
                'menu_name'     =>  'Sliders',
                'all_items'     =>  'All Sliders',
                'add_new'       =>  'Add A Slider',
                'add_new_item'  =>  'Add New Slider'
                ),
            'public'    => true,
            'supports'  => array(
                            'title',
                            'post-formats',
                            'tags',
                            'editor'
                            ),
            'show_in_admin_bar' =>  true,
            'has_archive'   =>  true
            )
        );

        //Slider Taxanomy Labels
        $labels = array(
            'name'                  => _x( 'Select Slider', 'Taxonomy plural name', 'text-domain' ),
            'singular_name'         => _x( 'Sliders', 'Taxonomy singular name', 'text-domain' ),
            'search_items'          => __( 'slider', 'text-domain' ),
            'all_items'             => __( 'All Sliders', 'text-domain' ),
            'edit_item'             => __( 'Edit Slider', 'text-domain' ),
            'update_item'           => __( 'Update Slider', 'text-domain' ),
            'add_new_item'          => __( 'Add New Slider', 'text-domain' ),
            'new_item_name'         => __( 'New Slider Name', 'text-domain' ),
            'add_or_remove_items'   => __( 'Add or remove Slider', 'text-domain' ),
            'menu_name'             => __( 'Sliders', 'text-domain' ),
        );
        //Slider Taxonomy Arguments
        $slider_args = array(
            'labels'            => $labels,
            'public'            => true,
            'show_in_nav_menus' => true,
            'show_admin_column' => false,
            'hierarchical'      => true,
            'show_tagcloud'     => true,
            'show_ui'           => true,
            'query_var'         => true,
            'rewrite'           => true,
        );

        register_taxonomy( 'slider', array( 'sliders' ), $slider_args );
    }

Maintenant que j'ai créé le type d'article qui va collecter tous les articles liés aux différents curseurs. L'étape suivante consiste à créer une page personnalisée pouvant afficher ces publications en fonction de leur taxonomie sélectionnée. Le meilleur moyen de le montrer est de créer un fichier taxonomy-slider.php dans le répertoire du thème. Cette page attrapera automatiquement les publications en fonction des catégories de curseurs.

Créez taxonomy-slider.php et collez ce code:

<?php
    while(have_posts()):
        the_post();
        the_title();
    endwhile;
?>

Personnalisez-le comme vous le souhaitez.

REMARQUE: APRÈS TOUTES LES ÉTAPES. Visitez la page Paramètres> Permaliens. Cela enregistrera les modifications apportées en enregistrant le type de publication personnalisé.

1
Sudeep K Rana