Getriggers – Kategorie-slug.php funktioniert nicht nach WordPress-Migration

Ich habe ein Problem, das ich vor Stunden im Internet zu lösen versuche, kann es aber jetzt nicht. Jede Idee oder Anhaltspunkt ist willkommen …

Ich versuche eine WordPress-Site zu migrieren, die ein Plugin ( CCTM (die keine Entwicklungsaktivität haben)) verwendet, um benutzerdefinierte Post-Typ und Felder “recetas” zu registrieren, die eine native WordPress-Kategorie “recetas” in ihren Beiträgen verwenden.

Im neuen Build registriere ich den benutzerdefinierten Post-Typ manuell auf functions.php und importiere den Inhalt über das native XML-Importer-Tool von WordPress.

 add_action( 'init', 'codex_book_init' ); function codex_book_init() { $labels = array( 'name' => _x( 'Recetas'), 'singular_name' => _x( 'Receta'), 'menu_name' => _x( 'Recetas'), 'name_admin_bar' => _x( 'Recetas'), 'add_new' => _x( 'Agregar Nueva'), 'add_new_item' => __( 'Agregar Nueva Receta'), 'new_item' => __( 'Nueva Receta'), 'edit_item' => __( 'Editar Receta'), 'view_item' => __( 'Ver Receta'), 'all_items' => __( 'Todas las Recetas'), 'search_items' => __( 'Buscar Receta'), 'parent_item_colon' => __( 'Receta Padre:'), 'not_found' => __( 'Sin Recetas encontradas.'), 'not_found_in_trash' => __( 'Sin Recetas encontradas en papelera.') ); $args = array( 'labels' => $labels, 'description' => __( 'Recetas'), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'recetas'), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => true, 'menu_position' => 5, 'menu_icon' => 'dashicons-admin-post', 'taxonomies' => array( 'category' ), 'supports' => array( 'title', 'thumbnail', 'excerpt', 'editor', 'comments') ); register_post_type( 'recetas', $args ); } 

Alle Inhalte werden für einzelne Artikel aus dem benutzerdefinierten Post-Typ in WP_Query( array('posts_type'=> 'recetas') , und in neuen Schleifen WP_Query( array('posts_type'=> 'recetas') der Inhalt ebenfalls in WP_Query( array('posts_type'=> 'recetas') aber die Probleme kommen in der Kategorievorlage (category-recetas.php) ) verwendet, um die Post-Art-Artikel mit der Standard-Wordpress-Schleife zu holen . Es funktioniert einfach nicht, niemand kommt aus der Kategorie ” recetas “.

Ich versuche, benutzerdefinierte Taxonomie “recetas” zu registrieren, versuche category-id.php, versuche archive-slug.php, versuche Permalinks wieder zu speichern, aber nichts funktioniert …

Jede Idee ist sehr nützlich und willkommen. Vielen Dank!

Getriggers Dank @Max Yudin – seine Antwort behob das Problem

Solutions Collecting From Web of "Getriggers – Kategorie-slug.php funktioniert nicht nach WordPress-Migration"

Category ist die integrierte Taxonomie nur für posts , nicht für benutzerdefinierte Post-Typen. Sie müssen also den pre_get_posts Hook pre_get_posts .

Dieser Hook wird aufgerufen, nachdem das Abfragevariablenobjekt erstellt wurde, aber bevor die eigentliche Abfrage ausgeführt wird.

Fügen Sie den folgenden Code in die functions.php oder ein benutzerdefiniertes Plugin ein. Nicht getestet.

 < ?php 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 = array('nav_menu_item', 'post', 'recetas'); // don't forget nav_menu_item to allow menus to work! } $query->set('post_type', $post_type); return $query; } } 

Dies ist ein leicht modifizierter Code von hier (wpbeginner.com).

Wenn dies nicht funktioniert, verwenden Sie den Originalcode aus dem obigen Link.