Anzeigen aller Beiträge und benutzerdefinierten Beitragstypen mithilfe einer einzigen Kategorie

Lesezeit: 3 Minuten

Benutzer-Avatar
Carol.Kar

Ich habe einen Beitragstyp mit erstellt CPT UI:

add_action( 'init', 'cptui_register_my_cpts_matratze' );
function cptui_register_my_cpts_matratze() {
    $labels = array(
        "name" => __( 'Matratzen', '' ),
        "singular_name" => __( 'Matratze', '' ),
        );

    $args = array(
        "label" => __( 'Matratzen', '' ),
        "labels" => $labels,
        "description" => "",
        "public" => true,
        "publicly_queryable" => true,
        "show_ui" => true,
        "show_in_rest" => false,
        "rest_base" => "",
        "has_archive" => true,
        "show_in_menu" => true,
                "exclude_from_search" => false,
        "capability_type" => "post",
        "map_meta_cap" => true,
        "hierarchical" => false,
        "rewrite" => array( "slug" => "matratze", "with_front" => true ),
        "query_var" => true,

        "supports" => array( "title", "editor", "thumbnail", "excerpt", "trackbacks", "custom-fields", "comments", "revisions", "author", "page-attributes", "post-formats" ),      
        "taxonomies" => array( "category", "post_tag" ),
            );
    register_post_type( "matratze", $args );

// End of cptui_register_my_cpts_matratze()
}

Wenn ich jedoch über einen Link in meinem Frontend auf die Kategorien zugreifen möchte, bekomme ich keine Beiträge.

Wenn Sie zum Beispiel auf „Ich bekomme nichts zurück“ klicken:

Kategorie

Der Beitrag ist online und hat die Kategorie DaMi:

Post

Ist mein CPT UI Post Type falsch konfiguriert? Irgendwelche Vorschläge, was ich falsch mache?

  • Nicht sicher, aber fügen Sie ‘menu_position’ => 1 in $args hinzu. codex.wordpress.org/Function_Reference/register_post_type

    – Dev Danidhariya

    27. September 2016 um 8:23 Uhr

  • @DevDanidhariya Ich habe gerade meine Antwort klargestellt! Es geht nicht um das Backend-Menü, sondern um die Frontend-Anzeige! Thx trotzdem!!

    – Carol.Kar

    27. September 2016 um 11:33 Uhr

  • @mrquad: kannst du deine auch teilen register_taxonomy Code.

    – Raunak Gupta

    1. Oktober 2016 um 8:16 Uhr

  • @mrquad Wenn meine Antwort Ihr Problem gelöst hat, markieren Sie es bitte, danke!

    – Allen

    1. Oktober 2016 um 19:17 Uhr

  • @Allen scheint das q beantwortet zu haben? (Und eine andere Person hat die gleiche Antwort noch einmal gegeben)

    – David

    3. Oktober 2016 um 22:57 Uhr

Benutzer-Avatar
Allen

durchsehen hier

Standardmäßig zeigen die Kategorieseiten auf Ihrer WordPress-Site nur den Standard-Beitragstyp „Beiträge“ an, daher müssen Sie Ihren CPT hinzufügen, bevor WordPress die Beiträge abfragt, indem Sie den Filter pre_get_posts hinzufügen.

Code hier hinzugefügt:

add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
  if( is_category() ) {
    $post_type = get_query_var('post_type');
    if($post_type)
        $post_type = $post_type;
    else
        $post_type = array('nav_menu_item', 'post', 'matratze'); // don't forget nav_menu_item to allow menus to work!
    $query->set('post_type',$post_type);
    return $query;
    }
}

  • Zeigen Sie am besten in Ihrer Antwort, was der Artikel erklärt, falls dieser Link jemals 404s anzeigt

    – Spartakus

    29. September 2016 um 20:51 Uhr

Benutzer-Avatar
Kani Kannan

Wenn Sie die WordPress-Standardkategorie für Ihren benutzerdefinierten Beitragstyp verwenden, zeigt WordPress Ihre benutzerdefinierten Beitragstypen standardmäßig nicht auf der Archivseite der Kategorie an. Sie müssen also die Abfrage der Kategoriearchivseite ändern, um Ihren benutzerdefinierten Beitragstyp einzuschließen.

Bitte fügen Sie den folgenden Code in die Datei function.php ein. Vergessen Sie nicht, den Namen Ihres benutzerdefinierten Beitragstyps im folgenden Code zu ändern.

function add_custom_post_types_to_tax( $query ) {
    if( is_category() || is_tag() && 
        empty( $query->query_vars['suppress_filters'] ) ) {

        // Include your custom post type
        $post_types = array( 'post', 'your_custom_type' );

        $query->set( 'post_type', $post_types );
        return $query;
    }
}

add_filter( 'pre_get_posts', 'add_custom_post_types_to_tax' );

Ich hoffe, das wird Ihnen helfen.

Dafür ,

function query_post_type($query) {
  if( is_category() ) {
        $post_type = get_query_var('post_type');
        // post type get here
        if($post_type){
                // no more code here for by default
        }           
        else{
           $post_types = array( 'post', 'your_custom_type' );
            // custom type          
        }
        $query->set('post_type',$post_type);
        return $query;
    }
}
add_filter('pre_get_posts', 'query_post_type');

Ich denke, benutze diese Funktion und es wird funktionieren. Jeder andere Problemkommentar dafür.

1371570cookie-checkAnzeigen aller Beiträge und benutzerdefinierten Beitragstypen mithilfe einer einzigen Kategorie

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy