2013-03-25 2 views
10

My Wordpress install имеет три типа сообщений: страницы, сообщения и портфолио. Текущая структура выглядит следующим образом:Wordpress Custom Permalink для просто сообщений

  • страница: example.com/page-name,
  • после листинга страница: example.com/blog,
  • индивидуального сообщения: example.com/post-name,
  • портфеля листинга страницы: example.com/portfolio,
  • индивидуального портфель сообщение: example.com/portfolio/portfolio-name.

Вещь, которую я хотел бы изменить, - это постоянная ссылка, но ничего больше. Я бы хотел, чтобы он стал example.com/blog/post-name.

Я не могу найти документацию, которая показывает, как сделать это изменение, не затрагивая другие типы.

EDIT: Моя текущая структура Постоянная ссылка настроена быть /%postname%/, и в разделе Настройки чтения, моя страница сообщений устанавливается в блог.

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', 
) 
)); 

ответ

33

Вы просто должны установить /blog/%postname%/ в качестве структуры Permalinks, это не изменит ваши страницы пермалинки.

И для того, чтобы сохранить свое портфолио, вы должны установить with_front в false, когда вы зарегистрируете этот тип сообщения.

'with_front' => bool Если permastruct присоединяемый с переднего основания. (пример: если ваша постоянная ссылка составляет /blog/, то ваши ссылки будут: false->/news/, true->/blog/news/). По умолчанию установлено значение

РЕДАКТИРОВАТЬ 1: Вам следует, вероятно, flush Wordpress rewrite rules после этого.

EDIT 2: with_front паров является rewrite пар:

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

Хорошо, так что это в основном работало. Листинг блога и отдельные страницы блога верны. На странице с листингом портфолио и на отдельных страницах нет/blog /, который является правильным. Оставшаяся проблема заключается в следующем: Когда я перехожу на страницу со списком моих портфолио, затем щелкните по одному из заголовков элемента - чтобы перейти на страницу этого элемента, он попытается перейти к example.com/blog/portfolio/porfolio-item -title Вместо того, чтобы перейти к правильному URL-адресу example.com/portfolio/portfolio-item-title – frogg3862

+0

Вы зарегистрировали свой тип сообщения правильно, как описано в моем ответе? Вы также должны очистить правила перезаписи Wordpress. – soju

+0

Да, я зарегистрировал тип сообщения, как вы его описали. Я только что сбросил правила перезаписи. Все страницы блога в порядке, но портфолио снова собирается/blog/ – frogg3862

Смежные вопросы