Advertisement
Beee

rewrite cpt url

Sep 12th, 2016
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.65 KB | None | 0 0
  1. function register_rewrite_rules()
  2. {
  3.     // only needed if rewrite => false (in register_post_type)
  4.     global $wp_rewrite;
  5.     $permalink_structure = '/escort/%post_id%/%postname%/';
  6.     $wp_rewrite->add_permastruct('escort', $permalink_structure, false);
  7.     $wp_rewrite->flush_rules();
  8. }
  9.  
  10. function escort_permalink($permalink, $post_id, $leavename = false) {
  11.     $post               = get_post($post_id);
  12.     $new_permalink      = $permalink;
  13.  
  14.     if (is_object($post) && get_post_type($post) == 'escort') {
  15.         $escort_name    = get_field('dvp_name', $post_id);
  16.         $escort_city    = get_field('dvp_city', $post_id);
  17.  
  18.         $rewritecode    = array(
  19.             '%post_id%',
  20.             '%city%',
  21.             '%escortname%',
  22.             $leavename? '' : '%postname%',
  23.         );
  24.  
  25.         if ( '' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')) ) {
  26.             $rewritereplace     = array(
  27.                 $post->ID,
  28.                 strtolower($escort_city),
  29.                 strtolower($escort_name),
  30.                 $post->post_name
  31.             );
  32.             $new_permalink = str_replace($rewritecode, $rewritereplace, $permalink);
  33.         } else {
  34.             // if they're not using the fancy permalink option
  35.         }
  36.     }
  37.     return $new_permalink;
  38. }
  39.  
  40. function my_rewrite_urls() {
  41.     $this->dvp_cct_rewrite_urls('escort', 'escort');
  42. }
  43.  
  44. function dvp_cct_rewrite_urls($post_type, $base)
  45. {
  46.     // var_dump($postid);
  47.     add_rewrite_rule(
  48.         sprintf('^%s/([^/]+)$', $base),
  49.         sprintf('index.php?post_type=%s&%s=$matches[1]', $post_type, $post_type),
  50.         'top'
  51.     );
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement