it-swarm.com.de

Benutzerdefinierten Beitragstyp nach Kategorie gefiltert anzeigen

Ich möchte einen benutzerdefinierten Beitragstyp haben, der mehrere Schieberegler für jede Kategorieseite (genaue category.php) enthält, einen für jede wie geplant.

Alle Schieberegler wurden einer verwandten Kategorie zugeordnet.

Derzeit verwende ich http://wordpress.org/plugins/custom-post-type-ui/ , um einen benutzerdefinierten Beitragstyp mit dem Namen: slider zu erstellen.

Und ich habe den folgenden Code, um alle Beiträge aus einer Kategorie anzuzeigen, während ich den Katzennamen im Menü drücke. Es funktioniert natürlich gut.

<?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; ?>

Das Problem ist jedoch, dass ich den Schieberegler (benutzerdefinierter Beitragstyp) nicht nach Kategorien filtern kann.

Sobald ich den wp_query aufrufe, werden alle Schieberegler ausgeblendet und meine get cat id arg ignoriert.

Dachte, es sollte nur der Schieberegler in einer bestimmten Kategorie angezeigt werden, nicht alle Kategorien.

Daher bitte ich um eine Abfrage, um nur den richtigen Schieberegler aufzurufen.

1
Cwkin7

Ich habe Ihr Problem bearbeitet und eine Lösung gefunden (soweit ich das Problem verstanden habe).

Es funktioniert so:

Registrieren eines Beitragstyps mit dem Namen: Schieberegler mit einer Taxonomie mit dem Namen Schieberegler .

Dadurch wird ein Beitragstyp erstellt, in dem Sie alle Ihre Schieberegler speichern und mit dieser benutzerdefinierten Taxonomie namens Schieberegler kategorisieren können.

CODE zur Registrierung des Posttyps. ( das geht in 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 );
    }

Jetzt, da ich den Beitragstyp erstellt habe, werden alle Beiträge zu verschiedenen Schiebereglern gesammelt. Der nächste Schritt ist das Erstellen einer benutzerdefinierten Seite, auf der diese Posts basierend auf der ausgewählten Taxonomie angezeigt werden. Der beste Weg, dies zu zeigen, besteht darin, eine taxonomy-slider.php im Verzeichnis des Themas zu erstellen. Diese Seite fängt automatisch Beiträge basierend auf den Slider-Kategorien.

Erstelle taxonomy-slider.php und füge diesen Code ein:

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

Fertigen Sie es besonders an, wie Sie mögen.

HINWEIS: NACH ALLEN SCHRITTEN. Besuchen Sie die Seite Einstellungen> Permalinks. Dadurch werden die durch die Registrierung eines benutzerdefinierten Beitragstyps vorgenommenen Änderungen gespeichert.

1
Sudeep K Rana