2013-03-25 13 views
10

Instalacja My Wordpress ma trzy typy postów: strony, posty i portfolio. Obecna struktura jest następująca:Wordpress Custom Permalink tylko do postów

  • strona: example.com/page-name,
  • postu ogłoszenia: example.com/blog,
  • indywidualne po: example.com/post-name,
  • portfolio strona aukcja: example.com/portfolio,
  • indywidualny portfel stanowisko: example.com/portfolio/portfolio-name.

Rzeczą, którą chciałbym zmienić, jest indywidualny post permalink, ale nic więcej. Chciałbym, aby stała się example.com/blog/post-name.

Nie mogę znaleźć dokumentacji pokazującej, jak wprowadzić tę zmianę bez wpływu na pozostałe typy.

EDIT: Moja obecna struktura permalink jest skonfigurowany do być /%postname%/ i pod Ustawienia czytania, moja strona stanowisk jest ustawiony na blogu.

register_post_type('portfolio', array( 
'label' => 'Portfolio Items', 
'description' => '', 
'public' => true, 
'show_ui' => true, 
'show_in_menu' => true, 
'capability_type' => 'post', 
'hierarchical' => true, 
'rewrite' => array('slug' => 'portfolio'), 
'with_front' => false, 
'query_var' => false, 
'has_archive' => true, 
'exclude_from_search' => false, 
'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'), 
'taxonomies' => array('category','post_tag'), 
'labels' => array (
    'name' => 'Portfolio Items', 
    'singular_name' => 'Portfolio Item', 
    'menu_name' => 'Portfolio Items', 
    'add_new' => 'Add Portfolio Item', 
    'add_new_item' => 'Add New Portfolio Item', 
    'edit' => 'Edit', 
    'edit_item' => 'Edit Portfolio Item', 
    'new_item' => 'New Portfolio Item', 
    'view' => 'View Portfolio Item', 
    'view_item' => 'View Portfolio Item', 
    'search_items' => 'Search Portfolio Items', 
    'not_found' => 'No Portfolio Items Found', 
    'not_found_in_trash' => 'No Portfolio Items Found in Trash', 
    'parent' => 'Parent Portfolio Item', 
) 
)); 

Odpowiedz

33

Po prostu trzeba ustawić /blog/%postname%/ jako struktury Permalinks, to nie zmieni swoich stronach linki bezpośrednie.

Aby zachować swój portfel, musisz ustawić with_front na false po zarejestrowaniu tego typu wpisu.

'with_front' => bool Jeżeli permastruct być dołączany z przodu podstawy . (przykład: jeśli twoja struktura permalinka to /blog/, wtedy twoje linki będą: false->/news/, true->/blog/news/). Wartość domyślna to true

EDIT 1: Powinieneś prawdopodobnie po tym flush Wordpress rewrite rules.

EDIT 2: with_front param param jest rewrite:

'rewrite' => array('slug' => 'portfolio', 'with_front' => false), 
+0

Ok, więc to głównie pracował. Lista blogów i poszczególne strony blogów są poprawne. Strona z listą portfeli i poszczególnymi stronami nie ma prawidłowego/blogu. Pozostaje tylko jeden problem: Kiedy wchodzę na stronę z listą moich portfeli, a następnie klikam na jeden z jej tytułów - aby przejść do strony tego elementu, spróbuje przejść do strony example.com/blog/portfolio/porfolio-item -title Zamiast przejść do prawidłowego adresu URL example.com/portfolio/portfolio-item-title – frogg3862

+0

Czy prawidłowo zarejestrujesz swój typ postów, tak jak opisano w mojej odpowiedzi? Powinieneś również opróżnić reguły przepisywania Wordpress. – soju

+0

Tak, zarejestrowałem typ postu, jak go opisałeś. Właśnie opróżniłem zasady przepisywania. Wszystkie strony na blogu są w porządku, ale portfolio znów idzie do/blog/ – frogg3862

Powiązane problemy