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