2

I have one issue I'm trying to resolve hours ago searching around the web but can't by now. Any Idea or clue is welcome...

I'm trying to migrate a WordPress site that use a plugin (CCTM (that have no more development activity)) to register custom post type and fields "recetas" that use a native wordpress category "recetas" in their posts.

In the new build, I register the custom post type manually on functions.php and import the content via native XML importer tool of 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 ); 
}

All content gets ok on single articles from the custom post type, and in new loops WP_Query( array('posts_type'=> 'recetas') the content gets ok too. but the problems comes in the category template (category-recetas.php) used to fetch the post type articles with te default wordpress loop <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>. It simple not working, no one post comes from the category "recetas".

I try register custom-taxonomy "recetas", try category-id.php, try archive-slug.php, try resaving permalinks, but nothing works...

Any idea is very usefull and wellcome. Thanks!

Resolved Thank to @Max Yudin - his answer fixed the issue

  • Did you check your .htaccess files ? – Mohammad Limon Oct 7 '16 at 13:55
  • I have the basic from codex.wordpress.org/htaccess but the url looks fine category/recetas and other category category/noticias works fine. The issue apear on the CPT that use the worpdress category – Tuux Oct 7 '16 at 14:11
1

Category is the built-in taxonomy for posts only, not custom post types. So you have to call the pre_get_posts hook.

This hook is called after the query variable object is created, but before the actual query is run.

Place the following code to the functions.php or a custom plugin. Not tested though.

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

This is slightly modified code from here (wpbeginner.com).

If this does not work, use the original code from the link above.

  • Many many thanks @Max Yudin, Your explanation and code works very well and fixed the issue. I was supposing that use worpdress default "category" taxonomy with custom post types could give problems but was the way the plugin did the job... I will post your answer in other forums in which I opened the same qustion. Many thanks again! – Tuux Oct 7 '16 at 16:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.