2016-08-02 189 views
0

我花了大量的時間試圖找到這個問題的解決方案,閱讀了很多文章,並從stackoverflow和其他地方嘗試了很多'修復',都沒有成功。WordPress的自定義固定鏈接自定義帖子類型的結構

我正在嘗試爲Wordpress(版本4.5.3)中創建的自定義帖子類型創建永久鏈接結構。帖子類型被稱爲「視頻」。默認情況下,我的固定鏈接看起來像'http://localhost.wordpress/videos/my-video-post'。我想將鏈接中的「視頻」替換爲帖子的類別名稱,即 'http://localhost.wordpress/computer-lessons/my-video-post',其中類別是「計算機課程」。我已經能夠使用下面的代碼創建工作永久鏈接,例如'http://localhost.wordpress/categories/computer-lessons/my-video-post',但我想擺脫鏈接中的'/ categories /'部分。我目前正在使用的代碼是

add_action('init', 'video_post_type'); 

function video_post_type() { 
    register_post_type('video', array(
     'labels' => array(
      'name' => 'Videos', 
      'singular_name' => 'Video', 
     ), 
     'rewrite' => array('slug' => 'categories/%category%'), 
     'taxonomies' => array('post_tag', 'category'), 
     'description' => 'Video resources.', 
     'public' => true, 
     'menu_position' => 20, 
     'supports' => array('title', 'editor', 'custom-fields') 
    )); 
    } 

function videos_post_link($post_link, $id = 0){ 
    $post = get_post($id); 
    if (is_object($post)){ 
     $terms = wp_get_object_terms($post->ID, 'category'); 
     if($terms){ 
      return str_replace('%category%' , $terms[0]->slug , $post_link); 
     } 
    } 
    return $post_link; 
} 
add_filter('post_type_link', 'videos_post_link', 1, 3); 

我已經試過這段代碼的很多很多的變化,但每當我得到我要找的永久鏈接結構給出了404

我開始覺得這可能是不可能的,因爲我已經閱讀了許多與此相關的文章和帖子,並且沒有找到可行的解決方案。

非常感謝提前。

回答

1

只需將'rewrite' => array('slug' => 'categories/%category%')替換爲'rewrite' => array('slug' => '%category%')即可,只需保留%category%即可使用。

重要提示:畢竟轉到固定鏈接選項並重置它。

更多的信息你可以在這裏找到Show only specific categories in permalinks for custom post type in WordPress

+0

感謝您的回覆mattkrupnik。不幸的是,我無法檢查您的解決方案,因爲我已經完成了我正在開發的項目,並且無法再訪問代碼,但是如果/當我再次遇到此問題時,我一定會嘗試您的解決方案。 –

相關問題