Skip to content

Instantly share code, notes, and snippets.

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 hawkidoki/8a1fbf28310fc079702ba4d8e598ecb4 to your computer and use it in GitHub Desktop.
Save hawkidoki/8a1fbf28310fc079702ba4d8e598ecb4 to your computer and use it in GitHub Desktop.
<?php
// Post Type Subpages: Création des redirections
add_action('template_redirect', 'hwk_ptsp_redirect');
function hwk_ptsp_redirect(){
if( !($post_id = get_the_ID()) || !($post_types = hwk_ptsp_get_post_types()) )
return;
foreach($post_types as $post_type){
if(!is_singular($post_type['post_type']))
continue;
$query_var = false;
foreach($post_type['pages'] as $page){
if(get_query_var($page['name'])){
$query_var = true;
// Si pas de Page Rewrite et Query Var différent de la page OU Page Rewrite activé et Page Meta disponible mais ne correspond pas au Query Var: Redirection
$has_rewrite = hwk_ptsp_page_has_rewrite($page);
if( (!$has_rewrite && get_query_var($page['name']) != $page['name']) || ( $has_rewrite && ($slug = get_post_meta($post_id, $post_type['meta_prefix'] . $page['name'], true)) && get_query_var($page['name']) != $slug ) )
return wp_redirect(hwk_ptsp_get_sub_permalink($post_id, $page['name']), 301);
}
}
// Aucune Query Var et le Post Type a une Page Primaire
if(!$query_var && hwk_ptsp_post_type_has_primary($post_type['post_type']))
return wp_redirect(get_permalink($post_id), 301);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment