Skip to content

Instantly share code, notes, and snippets.

@swinggraphics
Last active August 4, 2022 01:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swinggraphics/37732fe3bb96316063a1e69af06e8969 to your computer and use it in GitHub Desktop.
Save swinggraphics/37732fe3bb96316063a1e69af06e8969 to your computer and use it in GitHub Desktop.
Prefer Pages over CPT
/* Prefer Pages over CPT */
function sg_page_before_cpt( $query ) {
$cpt_slug = 'my_cpt_slug';
$cpt_rewrite_slug = 'my_cpt_rewrite_slug';
if( isset( $query->query_vars[$cpt_slug] ) && $slug = $query->query_vars[$cpt_slug] ) {
$slug = "$cpt_rewrite_slug/$slug";
if( get_page_by_path( $slug ) ) {
$query->query_vars['pagename'] = $slug;
unset( $query->query_vars[$cpt_slug] );
unset( $query->query_vars['post_type'] );
unset( $query->query_vars['name'] );
}
}
return $query;
}
if( ! is_admin() ) add_action( 'parse_request', 'sg_page_before_cpt' );
/* Alternative using `request` filter */
function sg_page_before_cpt2( $query_vars ) {
if ( isset( $query_vars['umc_article'] ) && $slug = $query_vars['umc_article'] ) {
$slug = hcps_umc_options( 'umc_article_slug' ) . "/$slug";
if ( get_page_by_path( $slug ) ) {
$query_vars['pagename'] = $slug;
unset( $query_vars['umc_article'] );
unset( $query_vars['post_type'] );
unset( $query_vars['name'] );
}
}
return $query_vars;
}
if ( ! is_admin() ) add_filter( 'request', 'sg_page_before_cpt2' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment