How to correctly edit permalink structures for both default and custom posts/taxonomies?

With @Caleb‘s help we’ve sorted this. The main problem was that the rewrite parameter on the custom taxonomies was not set to false. Doing this removed /articles/ from the permalinks to these archives. We changed this: $rewrite = isset( $taxonomy[‘rewrite’] ) ? $taxonomy[‘rewrite’] : array( ‘slug’ => $taxonomy[‘slug’] ); $hierarchical = isset( $taxonomy[‘hierarchical’] ) ? … Read more

WordPress User Role Permissions For Custom Post Type

Your function looks generally correct, but there are a couple of small mistakes that need to be addressed. Here’s a corrected version of your code: function control_dfwp($query) { $user = wp_get_current_user(); if (in_array(‘Registered for Portal’, $user->roles)) { $query->set(‘author’, $user->ID); // Use $user->ID instead of $current_user->ID } } add_action(‘pre_get_posts’, ‘control_dfwp’); Here are the corrections: Use $query … Read more

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