2014-05-14 67 views
0

我一直在使用一些我在網上找到的代碼片段來獲得我自己的代碼。我在我的網站上使用了類別和子類別,這個想法是將訪客從子類別頁面重定向到該子類別內的最新帖子。WordPress - 子類別重定向到第一個子帖子

代碼的第一部分(第一個函數)檢查類別是否實際上是子類別,如果是,則使用wp_redirect(第二個函數)。

我的代碼在本地主機上工作,但當我以管理員身份登錄時,它不起作用(它與我的ubermenu插件衝突),如果我沒有登錄,那麼它工作得很好。我認爲我的代碼已經過時或者因爲所有的插件在沒有我的代碼的情況下工作得很好。如果你們能檢查出來,我會很感激。 :)

這,它被放置在課程的functions.php:

// Subcategory redirect to first child post 
function is_subcategory($category = null) { 
    if (is_category()) { 
     if (null != $category){ 
      $cat = get_category($category); 
     }else{ 
      $cat = get_category(get_query_var('cat'),false); 
     } 
     if ($cat->parent == 0){ 
      return false; 
     }else{ 
      return true; 
     } 
    } 
    return false; 
} 

add_filter('wp_head', 'is_subcategory'); 


function subcategory(){ 

if (is_subcategory()) { 
    $category = get_the_category(); 
$posts = query_posts('showposts=1&cat='.$category[0]->cat_ID); 
if(have_posts()) : 
    wp_redirect(get_permalink($post->ID)); 
endif; 
} 

} 
add_filter('get_header', 'subcategory'); 
+1

你的代碼看起來還好,我覺​​得你只是調用它會產生一些輸出之後。嘗試將你的過濾器中的'wp-head'改爲'get_header'。 – cpilko

+0

解決了它,謝謝! :) –

回答

0
// Subcategory redirect to first child post 
function is_subcategory($category = null) { 
    if (is_category()) { 
     if (null != $category){ 
      $cat = get_category($category); 
     }else{ 
      $cat = get_category(get_query_var('cat'),false); 
     } 
     if ($cat->parent == 0){ 
      return false; 
     }else{ 
      return true; 
     } 
    } 
    return false; 
} 

add_filter('wp_head', 'is_subcategory'); 


function subcategory(){ 

if (is_subcategory()) { 
    $category = get_the_category(); 
$posts = query_posts('showposts=1&cat='.$category[0]->cat_ID); 
if(have_posts()) : 
    wp_redirect(get_permalink($post->ID)); 
endif; 
} 

} 
add_filter('get_header', 'subcategory'); 
相關問題