Custom Postype Posts aus einer Kategorie ausgeben

  • Hallo
    In einen Custom Posttype "Kursangebote" sind 2 Kategorien angelegt: Kurs und Seminare. Ich möchte nun die Titel der jeweiligen Inhalte getrennt in einem Template aufgelistet haben.
    1. Kurse
    2. Seminare

    Folgendes habe ich versucht:

    <?php $args = array( 'post_type' => 'kursangebote', 'cat=4', 'posts_per_page' => 30);
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
    echo '<li>';
    printf( '<a href="%s" title="%s">%s</a>', get_permalink(), the_title_attribute( 'echo=0' ), get_the_title() );
    echo '</li>';
    endwhile; ?>
    </ul>


    <?php $args = array( 'post_type' => 'kursangebote', 'cat=1', 'posts_per_page' => 30);
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
    echo '<li>';
    printf( '<a href="%s" title="%s">%s</a>', get_permalink(), the_title_attribute( 'echo=0' ), get_the_title() );
    echo '</li>';
    endwhile; ?>
    </ul>

    Danke für die Hilfe.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • die Inhalte werden nicht angzeigt, es erscheint keine Fehlermeldung.

    ohne 'cat=1' funktionierts jedoch werden alle Posts angezeigt:
    Link zur Seite: http://tanztherapie-kofler.ch/kurse/


    <ul class="kursangebote">
    <?php $args = array( 'post_type' => 'kursangebote', 'posts_per_page' => 30);
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
    echo '<li>';
    printf( '<a href="%s" title="%s">%s</a>', get_permalink(), the_title_attribute( 'echo=0' ), get_the_title() );
    //the_content();
    //the_category();
    echo '</li>';
    endwhile; ?>
    </ul>

    Es sind custom taxonomies:

    <?php

    // Add new post type for Kursangebote
    add_action('init', 'kofler_kursangebote_init');
    function kofler_kursangebote_init()
    {
    $kursangebot_labels = array(
    'name' => _x('Kursangebote', 'post type general name'),
    'singular_name' => _x('Kursangebot', 'post type singular name'),
    'all_items' => __('Alle Kursangebote'),
    'add_new' => _x('Neues Kursangebot hinzufügen', 'kursangebot'),
    'add_new_item' => __('Neues Kursangebot'),
    'edit_item' => __('Kursangebot bearbeiten'),
    'new_item' => __('Neues Kursangebot'),
    'view_item' => __('Kursangebot ansehen'),
    'search_items' => __('Kursangebote durchsuchen'),
    'not_found' => __('Keine Kursangebote gefunden'),
    'not_found_in_trash' => __('Es befinden sich keine Kursangebote im Papierkorb'),
    'parent_item_colon' => ''
    );
    $args = array(
    'labels' => $kursangebot_labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => 5,
    'supports' => array('title','editor','author','thumbnail','excerpt','comments','custom-fields'),
    'has_archive' => 'kursangebote', 'blog'
    );
    register_post_type('kursangebote',$args);
    }


    // Add custom taxonomies
    add_action( 'init', 'kofler_create_taxonomies', 0 );

    function kofler_create_taxonomies()
    {
    // Kategorien
    $kategorien_labels = array(
    'name' => _x( 'Kategorien', 'taxonomy general name' ),
    'singular_name' => _x( 'Kategorie', 'taxonomy singular name' ),
    'search_items' => __( 'Kategorie durchsuchen' ),
    'all_items' => __( 'Alle Kategorien' ),
    'most_used_items' => null,
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Kategorie bearbeiten' ),
    'update_item' => __( 'Kategorie aktualisieren' ),
    'add_new_item' => __( 'Neue Kategorie erstellen' ),
    'new_item_name' => __( 'Neue Kategorie' ),
    'menu_name' => __( 'Kategorien' ),
    );
    register_taxonomy('kategorien',array('kursangebote'),array(
    'hierarchical' => true,
    'labels' => $kategorien_labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array('slug' => 'kategorie' )
    ));


    // Schlagworte
    $schlagworte_labels = array(
    'name' => _x( 'Schlagworte', 'taxonomy general name' ),
    'singular_name' => _x( 'Schlagwort', 'taxonomy singular name' ),
    'search_items' => __( 'Schlagworte durchsuchen' ),
    'popular_items' => __( 'Bekannte Schlagworte' ),
    'all_items' => __( 'Alle Schlagworte' ),
    'most_used_items' => null,
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Schlagworte bearbeiten' ),
    'update_item' => __( 'Schlagworte aktualisieren' ),
    'add_new_item' => __( 'Neues Schlagwort erstellen' ),
    'new_item_name' => __( 'Neues Schlagwort' ),
    'separate_items_with_commas' => __( 'Schlagworte durch Kommas trennen' ),
    'add_or_remove_items' => __( 'Schlagworte erstellen / löschen' ),
    'choose_from_most_used' => __( 'Häufig genutzte Schlagworte' ),
    'menu_name' => __( 'Schlagworte' ),
    );
    register_taxonomy('schlagworte',array('kursangebote'),array(
    'hierarchical' => false,
    'labels' => $schlagworte_labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array('slug' => 'schlagwort' )
    ));


    }


    ?>

    Vielen Dank.

    Einmal editiert, zuletzt von info@ivographics.ch (15. März 2013 um 08:34)

  • du hast doch eigene Taxonomies registriert, dann kannst du nicht per cat filtern, sonder mußt Filter für Taxonomie verwenden. Als Custom Taxonomie den Begriff Kategorien verwenden, verwirrt natürlich, denn es ist nicht dasselbe wie categories bei Standard Posts

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Hallo, Danke für deine Antwort könntest du mir bitte ein Beispiel zu den Filter oder einen Link senden, damit ich weiss wonach ich suchen muss? Kenne mich nicht gut aus in PHP.
    Welchen Begriff würdest du anstelle Kategorie verwenden: z.B. Angebotstyp?
    Vielen Dank!

  • https://codex.wordpress.org/Class_Reference/WP_Query

    da du dich mit Code und query beschäftigst, wäre ein lesen der Codex eine Mindestvoraussetzung.
    denn dort steht alles, die Begriffe habe ich schon gepostet, nach dennen du suchen musst.
    ausserdem sind alle diese Begriff in DEINEM PHP code, PHP ist ein Programmiersprache, und aus irgendwo ein zufallsbeispiel kopieren ist daher nicht eine Lösung für deine Wünsche.
    und falls du Wünsche bzw deren Lösungen nicht selbst bauen kannst (mangels PHP kenntnisse), musst die entweder lange damit (PHP, Programmierung, Codex usw) auseinandersetzten oder eine Profi beautragen (zB jobbörse)

    du kannst die Taxonomie nennen wie du willst, aber du darfst dich nicht selbst dadurch verwirren und dann verwechseln.

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

  • Danke für die Hilfe.

    Ich habe nun eine Lösung gefunden:
    Quelle: http://wordpress.org/support/topic/…nomy-wp_query-1
    <?php

    $post_type = 'kursangebote';
    $tax = 'kategorien';
    $tax_terms = get_terms($tax);
    if ($tax_terms) {
    foreach ($tax_terms as $tax_term) {
    $args=array(
    'post_type' => $post_type,
    "$tax" => $tax_term->slug,
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'caller_get_posts'=> 1
    );

    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
    echo $tax_term->name;
    while ($my_query->have_posts()) : $my_query->the_post(); ?>
    <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
    <?php
    endwhile;
    }
    wp_reset_query();
    }
    }
    ?>


  • Ich habe nun eine Lösung gefunden:


    wirklich, funktioniert deine Kopie?
    wäre doch ideal https://codex.wordpress.org/Class_Reference/WP_Query zu lesen, da du dann wüsstest, daß du eine alte Lösung gefunden hast, und die Anweisung für Tax Query ist darin veraltet, das wäre im Codex geschrieben, aber vielleicht hast du Glück und deine Kopie funktioniert, und du brauchst Tips und Anleitungen nicht lesen!

    Wordpress weil es spass macht, besonders beim WordPress Meetup in Linz

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!