How to generate programmatically a post which displays a chunk of content from two different posts belonging to two different Custom Post Types?

To display content from two Custom Post Types (CPTs), like “Books” and “Authors,” on a third CPT (e.g., “Quotes”), follow these steps: 1. Create a “Quotes” Post Type In functions.php, register a new CPT: function create_quote_post_type() { register_post_type( ‘quote’, array( ‘labels’ => array( ‘name’ => __( ‘Quotes’ ), ‘singular_name’ => __( ‘Quote’ ) ), ‘public’ … Read more

How to set up a private custom post type that is accessible in the administrative dashboard?

For the frontend, you can use template_redirect action to identify the page, and perform redirects or adjust the request on the fly (untested): add_action( ‘template_redirect’, static function () { if ( ! is_singular( ‘cpt’ ) && ! is_post_type_archive( ‘cpt’ ) ) { return; } if ( current_user_can( ‘read_private_pages’ ) || current_user_can( ‘read_private_posts’ ) ) { … Read more

Creating multiple pages from one custom post type entry

Could you create taxonomies for the “Student” custom post type for “Bio,” “Resume,” and “Contact”? // Register Custom Taxonomy function create_bio_taxonomy() { $labels = array( ‘name’ => _x( ‘Bios’, ‘Taxonomy General Name’, ‘text_domain’ ), ‘singular_name’ => _x( ‘Bio’, ‘Taxonomy Singular Name’, ‘text_domain’ ), ‘menu_name’ => __( ‘Bio’, ‘text_domain’ ), ‘all_items’ => __( ‘All Bios’, ‘text_domain’ … Read more

Rewrite taxonomy permalink appended to CPT archive url

There are 2 possible ways to fix the issue with the term’s permalinks (which is currently using the wrong query var name – intvn-cat): Easy. Just set the 3rd parameter for add_rewrite_tag() to intervention_cat=. I.e. add_rewrite_tag( ‘%intvn-cat%’, ‘(.+)’, ‘intervention_cat=” ); This is what I would actually do – Remove the add_rewrite_tag() part in your code, … Read more

How does WordPress manage to differentiate between post and page URLs without a distinct base, and how can I replicate this functionality?

I dont know how I missed out on that while looking for aproaches, but I have a working solution now based on this answer. I modified it to check for slashes in $query->request, if there is none I first look for my custom post type (get_posts() with’slug’ => $query->request). If no post is found I … Read more

Display box in sidebar of custom post type

It’s really easy, it’s called meta box and you can create one with the following code. /** * Register meta box(es). */ function plugin_prefix_register_meta_boxes() { add_meta_box( ‘meta-box-id’, __( ‘My Meta Box’, ‘textdomain’ ), ‘plugin_prefix_my_display_callback’, ‘custom_post_type’ ); } add_action( ‘add_meta_boxes’, ‘plugin_prefix_register_meta_boxes’ ); /** * Meta box display callback. * * @param WP_Post $post Current post object. … Read more

How to add random prefix (based on related page slug) to custom post type?

Resolved! So I’ve added rewrite rule: add_rewrite_rule( ‘^[^\/]*\/review\/([^\/]*)$’, ‘index.php?review=$matches[1]’, ‘top’ ); And additional code to create appropriate url structure: function rev_update_slug( $post_link, $post, $leavename ) { if ( ‘review’ != $post->post_type || ‘publish’ != $post->post_status ) { return $post_link; } //** Field where related page post object stored in ACF field **// $pageid= get_field(‘related_home_inner_page’,$post->ID); $post_link … Read more

Generate Post Title From ACF Fields on Custom Post Type

I just wanted to post the code that got this working without issues. I had an extra argument in the function that was never being used ( $post ). function ccc_acf_update_fixture_post_title( $post_id ) { if ( get_post_type( $post_id ) == ‘fixture’ ) { $team = get_field( ‘team’, $post_id ); $venue = get_field( ‘venue’, $post_id ); … Read more