2017-02-26 78 views
0

我在WordPress中重寫url自定義帖子類型時有點問題。如何重寫url?post_type = WordPress

我有此鏈接:www.domain.com/?post_type=review_smartphone 我想改成這樣:www.domain.com/smartphone

如何使它,請幫助。我試試這個解決方案:https://wordpress.stackexchange.com/questions/248758/rewrite-rules-for-custom-post-type-slug但我不明白如何實現它。

+0

你使用的是什麼parmalink結構? –

+0

已修復以下代碼。, – Opsional

回答

0

已修復此代碼。

/** 
* Re-write post type urls 
*/ 
function rewrite_post_type_init() { 
    // semua post type 
    global $wpdb; 
    $query_type = $wpdb->get_results(" 
     SELECT * 
     FROM " . $wpdb->prefix . "mf_posttypes 
     ORDER BY name 
     ASC 
    "); 

    // tampilkan post type 
    foreach ($query_type as $type) { 
     $args = array(
      'label'     => __($type->name, 'oelas'), 
      'supports'    => array('title', 'editor', 'excerpt', 'thumbnail', 'revisions', 'page-attributes'), 
      'taxonomies'   => array(strtolower($type->name).'_brand', 'post_tag'), 
      'hierarchical'   => true, 
      'public'    => true, 
      'show_ui'    => true, 
      'show_in_menu'   => true, 
      'show_in_admin_bar'  => true, 
      'show_in_nav_menus'  => true, 
      'can_export'   => true, 
      'has_archive'   => true, 
      'rewrite'    => array('slug' => strtolower($type->name)), 
     ); 

     register_post_type($type->type, $args); 

     add_rewrite_rule( 
      '^'.strtolower($type->name).'/([^/]+)/?$', 
      'index.php?post_type='.$type->type.'&name=$matches[1]', 
      'top' 
     ); 
    } 
} 

add_action('init', 'rewrite_post_type_init'); 

function rewrite_post_type_flatten_hierarchies($post_link, $post) { 
    // semua post type 
    global $wpdb; 
    $query_type = $wpdb->get_results(" 
     SELECT * 
     FROM " . $wpdb->prefix . "mf_posttypes 
     ORDER BY name 
     ASC 
    "); 

    // tampilkan post type 
    foreach ($query_type as $type) { 
     if (strtolower($type->name) != $post->post_type) { 
      return $post_link; 
     } 

     $uri = ''; 
     foreach ($post->ancestors as $parent) { 
      $uri = get_post($parent)->post_name . "/" . $uri; 
     } 

     return str_replace($uri, '', $post_link); 
    } 
} 

add_filter('post_type_link', 'rewrite_post_type_flatten_hierarchies', 10, 2); 
/***************** akhir */