single-{$post_type}-{slug}.php for custom post types

A) The Base in Core As you can see in the Codex Template Hierarchy explanation, single-{$post_type}.php is already supported. B) Extending the core Hierarchy Now there’re gladly some filters and hooks inside /wp-includes/template-loader.php. do_action(‘template_redirect’); apply_filters( ‘template_include’, $template ) AND: a specific filter inside get_query_template( $type, … ) named: “$type}_template” B.1) How it works Inside the … Read more

get_terms by custom post type

I’m afraid this isn’t possible natively (yet?). See this trac: http://core.trac.wordpress.org/ticket/18106 Similarly on the taxonomy admin page the post count reflects all post types. (I’m pretty sure there is a trac ticket for that too) http://core.trac.wordpress.org/ticket/14084 See also, this related post. New solution Having written the one below, I’ve released a much better way (alteast … Read more

How do you use a CPT as the default home page?

Thanks to @toscho for the useful answer, but it felt a bit hackish to me, so I poked around a bit and figured out I could add a filter instead: function wpa18013_add_pages_to_dropdown( $pages, $r ){ if(‘page_on_front’ == $r[‘name’]){ $args = array( ‘post_type’ => ‘stack’ ); $stacks = get_posts($args); $pages = array_merge($pages, $stacks); } return $pages; … Read more

Display all posts in a custom post type, grouped by a custom taxonomy

So, you might consider automating the multiple queries. First, get the list of terms in your custom taxonomy, using get_terms(): <?php $member_group_terms = get_terms( ‘member_group’ ); ?> Then, loop through each one, running a new query each time: <?php foreach ( $member_group_terms as $member_group_term ) { $member_group_query = new WP_Query( array( ‘post_type’ => ‘member’, ‘tax_query’ … Read more

Load a script just to custom post type in admin

Try this code for adding scripts to the edit pages of your portfolio custom post type. add_action( ‘admin_print_scripts-post-new.php’, ‘portfolio_admin_script’, 11 ); add_action( ‘admin_print_scripts-post.php’, ‘portfolio_admin_script’, 11 ); function portfolio_admin_script() { global $post_type; if( ‘portfolio’ == $post_type ) wp_enqueue_script( ‘portfolio-admin-script’, get_stylesheet_directory_uri() . ‘/admin.js’ ); }

Adding categories to custom post type in permalink

There are 2 points of attack to cover when you are adding custom post type rewrite rules: Rewrite rules This happens when the rewrite rules are being generated in wp-includes/rewrite.php in WP_Rewrite::rewrite_rules(). WordPress allows you to filter the rewrite rules for specific elements like posts, pages and various types of archive. Where you see posttype_rewrite_rules … Read more

Remove taxonomy slug from a custom hierarchical taxonomy permalink

UPDATE Since writing this WordPress core has added the ‘do_parse_request’ hook that allows URL routing to be handled elegantly and without the need to extend the WP class. I covered the topic in-depth in my 2014 Atlanta WordCamp talk entitled “Hardcore URL Routing“; the slides are available at the link. ORIGINAL ANSWER URL Design has … Read more

WP REST API fetch posts from post type

Just add the next parmater into the function register_post_type, it can be before ‘menu_position’parameter. ‘show_in_rest’ => true if you’re using a plugin to register your posttype you can use the next code: add_action( ‘init’, ‘add_anuncios_to_json_api’, 30 ); function add_anuncios_to_json_api(){ global $wp_post_types; $wp_post_types[‘anuncio’]->show_in_rest = true; } after that, you’ll be able to list your posts from … Read more