Hi I have created my own custom post type within WordPress to contain projects that i can call via my theme files.

I am new to creating my own themes. I currently am using the following code in my single.php file to call in related articles based on the category of the blog post.

<?php
            // Default arguments
            $args = array(
                'posts_per_page' => 3, // How many items to display
                'post__not_in'   => array( get_the_ID() ), // Exclude current post
                'no_found_rows'  => true, // We don't ned pagination so this speeds up the query
            );

            // Check for current post category and add tax_query to the query arguments
            $cats = wp_get_post_terms( get_the_ID(), 'category' ); 
            $cats_ids = array();  
            foreach( $cats as $wpex_related_cat ) {
                $cats_ids[] = $wpex_related_cat->term_id; 
            }
            if ( ! empty( $cats_ids ) ) {
                $args['category__in'] = $cats_ids;
            }

            // Query posts
            $wpex_query = new wp_query( $args );

            // Loop through posts
            foreach( $wpex_query->posts as $post ) : setup_postdata( $post ); ?>
            <div class="col-md-4 related-post">
                <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('large'); ?></a>
                <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( the_title_attribute( 'echo=0' ) ); ?>"><?php the_title(); ?></a>
            </div>    
            <?php
            // End loop
            endforeach;

            // Reset post data
            wp_reset_postdata(); ?>

In my new post type “projects” i would like to call in related projects. Which im assuming would be very similar code except i need to stop it looking for posts and instead look for my projects.

Here is my code for new post type:

// Projects
add_action( 'init', 'create_post_type' );
add_post_type_support( 'bw_projects', 'thumbnail' );    
add_post_type_support( 'bw_projects', 'custom-fields' );    
function create_post_type() {
  register_post_type( 'bw_projects',
    array(
      'labels' => array(
        'name' => __( 'Projects' ),
        'singular_name' => __( 'Projects' )
      ),
      'public' => true,
      'has_archive' => true,
      'taxonomies' => array( 'category','post_tag'),
    )
  );
}

What would i need to change in my first code snippet in order to look for bw_projects and not look for ‘posts’ anymore. I tried playing around and changing certain lines myself but i caused more issues and stopped the page loading. Is this even right i can use the same code, slightly altered or would i need something completely different?

Thanks in advance.

Read more here: WordPress Recent Posts/Projects


Solution:

If you know the solution of this issue, please leave us a reply in Comment section, to update the question.


Wordpress related questions and answers: