2013-04-28 49 views
0

我有一個小問題,我認爲它與語法問題有關。如何爲Wordpress中的某個類別指定特定的訂單?

我有回家的特定腳本調用bloginfo("name")的頁面標題那麼else聲明低於根據有關他們的第一個類別的名稱標題的網頁,並能正常工作:

else{ 
    $category = get_the_category(); 
    echo $category[0]->cat_name; 
} 

然而,對於大多數帖子我也有一個默認的「主頁」類別(有一些例外),我不希望這個類別被選爲頁面標題,如果它恰好出現在與此頁面相關的類別列表中。

有兩種方法我可以考慮使這成爲可能,但我不知道如何編碼它們。首先是排除上面代碼中的家庭類別,但不知道如何實現它。第二種方式是以某種方式迫使wordpress總是在特定帖子的第一個選擇的類別之後添加「主頁」類別。

我希望這很清楚。任何人都想出一個基本的解決方案?

非常感謝。

回答

0

這個插件做你最想開箱什麼:

http://wordpress.org/extend/plugins/sem-opt-in-front/

另外,這樣做:

function the_main_topic_link($link = '', $id = '') 
{ 
    if (!$id || $id != get_option('default_category')) return $link; 

    if (get_option('show_on_front') == 'page' && get_option('page_on_front')) { 
     if ($blog_page_id = get_option('page_for_posts')) { 
      return apply_filters('the_permalink', get_permalink($blog_page_id)); 
     } else { 
      return $link; 
     } 
    } else { 
     return home_url('/'); 
    } 
} 

add_filter('category_link', 'the_main_topic_link', 10, 2); 

function pre_get_posts_redirect_main_topic($q) 
{ 
    global $wp_the_query; 

    if ($q !== $wp_the_query) return; 

    if ($q->is_category(get_option('default_category'))) { 
     wp_redirect(home_url('/')); 
     die; 
    } 
} 

if (!is_admin()) add_action('pre_get_posts', 'pre_get_posts_redirect_main_topic'); 

它會好好對待鏈接到您的默認類別作爲連接到您的首頁。

+0

嘿非常感謝Denis!我去了(對不起,懶惰)的路線和插件似乎很容易解決這個問題,這正是我想如何解決這些問題;)但我會保留腳本以備將來參考,尤其是儘管是一個php/wordpress新手隨着我的行爲,我發現自己正在剽竊這些東西。 – HGB 2013-04-28 16:15:16

+0

請注意,插件(我多年前撰寫)使得首頁有點慢,如果你自WP 2.3以來有很多帖子,那麼YMMV取決於你在做什麼。 :-) – 2013-04-28 17:02:37

相關問題