2017-04-25 65 views
0

我有一個自定義的帖子類型,名爲patch。每個修補程序都有一個元鍵version,此元的值始終是唯一的。例如:Wordpress meta in permalink

  • 1.0.0
  • 1.0.1
  • 1.5
  • ...

我願意特別固定鏈接結構,使每個補丁可以通過此網址訪問結構:

www.site.ru/patch/%version%

所以www.site.ru/patch/1.0.1會導致特定的補丁後女巫元鍵version值等於1.0.1

我該怎麼做?

我想應該有辦法以某種方式自動將%version%轉換爲像index.php?p=*needed_patch_post_id*這樣的結構。

回答

0

嘗試使用此代碼:

add_action('init', 'rb_add_rewrite_rules'); 
add_filter('post_type_link', 'rb_create_permalinks', 10, 3); 

function rb_add_rewrite_rules() { 
    global $wp_rewrite; 
    $wp_rewrite->add_rewrite_tag('%version%', '([^/]+)', 'version='); 
    $wp_rewrite->add_permastruct('patch', 'patch/%version%/', false); 
} 

function rb_create_permalinks($permalink, $post, $leavename) { 

    $no_data = 'no-speciality'; 

    $post_id = $post->ID; 

    if($post->post_type != 'patch' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) 

    return $permalink; 

    $var1 = get_post_meta($post_id, 'version', true); 

    $var1 = sanitize_title($var1); 

    if(!$var1) { $var1 = $no_data; } 

    $permalink = str_replace('%version%', $var1, $permalink); 

    return $permalink; 
} 

我希望這會爲你工作。謝謝。

+0

不幸的是,當點擊修補鏈接時,我在網站主頁上重定向:( – CMTV