0
votes

I'm trying not to repeat questions that've already been asked but I haven't been able to debug this so far - I'm sure it's a small thing I'm missing!

I have a single-project.php template that I'd like to include a sidebar with all project custom post types as links. I only seem to be getting 'post' post_type, not my custom post_type (project)

Registered custom post type in functions.php

function custom_post_type() {
$labels = array(
'name'                  => _x( 'Project', 'Post Type General Name', 'text_domain' ),
    'singular_name'         => _x( 'Project', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'             => __( 'Projects', 'text_domain' ),
    'name_admin_bar'        => __( 'Projects', 'text_domain' ),
    'archives'              => __( 'Item Archives', 'text_domain' ),
    'attributes'            => __( 'Item Attributes', 'text_domain' ),
    'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
    'all_items'             => __( 'All Projects', 'text_domain' ),
    'add_new_item'          => __( 'Add New Item', 'text_domain' ),
    'add_new'               => __( 'Add New', 'text_domain' ),
    'new_item'              => __( 'New Item', 'text_domain' ),
    'edit_item'             => __( 'Edit Item', 'text_domain' ),
    'update_item'           => __( 'Update Item', 'text_domain' ),
    'view_item'             => __( 'View Item', 'text_domain' ),
    'view_items'            => __( 'View Items', 'text_domain' ),
    'search_items'          => __( 'Search Item', 'text_domain' ),
    'not_found'             => __( 'Not found', 'text_domain' ),
    'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
    'featured_image'        => __( 'Featured Image', 'text_domain' ),
    'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
    'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
    'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
    'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
    'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
    'items_list'            => __( 'Items list', 'text_domain' ),
    'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
    'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
);
$args = array(
    'label'                 => __( 'Project', 'text_domain' ),
    'description'           => __( 'Spaceworks projects', 'text_domain' ),
    'labels'                => $labels,
    'supports'              => array( ),
    'hierarchical'          => false,
    'public'                => true,
    'show_ui'               => true,
    'show_in_menu'          => true,
    'menu_position'         => 5,
    'show_in_admin_bar'     => true,
    'show_in_nav_menus'     => true,
    'can_export'            => true,
    'has_archive'           => true,        
    'exclude_from_search'   => false,
    'publicly_queryable'    => true,
    'capability_type'       => 'post',
);
register_post_type( 'project', $args );

}
add_action( 'init', 'custom_post_type', 0 );

Register custom taxonomy in functions.php

function my_taxonomies_project() {
$labels = array(
'name'              => _x( 'Project Categories', 'taxonomy general name' ),
'singular_name'     => _x( 'Project Category', 'taxonomy singular name' ),
'search_items'      => __( 'Search Project Categories' ),
'all_items'         => __( 'All Project Categories' ),
'parent_item'       => __( 'Parent Project Category' ),
'parent_item_colon' => __( 'Parent Project Category:' ),
'edit_item'         => __( 'Edit Project Category' ), 
'update_item'       => __( 'Update Project Category' ),
'add_new_item'      => __( 'Add New Project Category' ),
'new_item_name'     => __( 'New Project Category' ),
'menu_name'         => __( 'Project Categories' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
);
register_taxonomy( 'project_category', 'project', $args );
}
add_action( 'init', 'my_taxonomies_project', 0 );`

Single project template: single-project.php

<?php
get_header();

while ( have_posts() ) : the_post(); ?>

<div class="projects">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
<?php the_content(); ?>
</div>

<?php 
endwhile; 
wp_reset_query();
?>


<div class="col-12 col-lg-3 col-xl-3 hidden-lg-up allProjects">
#project loop for mobile

<?php
$tax_query_args = array(
    array(
        'post_type'         => array('post', 'project'),
     ),
);

$taxQuery = new WP_Query( $tax_query_args ); 

if ($taxQuery->have_posts())
while ($taxQuery->have_posts() ) : $taxQuery->the_post(); 
?>

<div class="projectCard">
<a href="<?php echo get_permalink(); ?>">
<p><?php the_title() ?></p>
</a>
</div>

<?php endwhile; wp_reset_query(); 

get_footer();
?>

Can anyone spot an issue? This has been bugging me for a few days! All the best

2
what do you want to display single-project.php file? - Purvik Dhorajiya

2 Answers

0
votes

Change

$tax_query_args = array(
    array(
        'post_type'         => array('post', 'project'),
     ),
);

to

$tax_query_args = array(
    'post_type' => array('post', 'project')
);

Quick edit:

When using the WP_Query class to make a query, and then you call the the_post method, use wp_reset_postdata after the closing while statement.

No need to reset the query, since it hasn't changed. :)

0
votes

Display project by using project category wise

<?php
$project_args=array(
    'type'                     => 'project',
    'child_of'                 => 0,
    'parent'                   => 0,
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 0,
    'hierarchical'             => 1,
    'exclude'                  => '',
    'include'                  => '',
    'number'                   => '',
    'taxonomy'                 => 'project_category',
    'pad_counts'               => false 
);
$project_my_query = null;
$project_my_query = new WP_Query($project_args);

if( $project_my_query->have_posts() ) 
{
        while ($project_my_query->have_posts()) : $project_my_query->the_post(); 

        ?>
        <div class="projectCard">
        <a href="<?php echo get_the_permalink($post->ID); ?>"><p><?php the_title() ?></p></a>
        </div
        <?php
       endwhile;
}
wp_reset_query($project_my_query);
?>