2010-05-12 4 views
0

Я хочу изменить схему пост-ссылок на моем WordPress 3.0-beta1 для использования моей новой пользовательской таксономии.Изменить структуру permalink на WordPress, чтобы использовать пользовательскую таксономию

Сегодня я могу использовать /%category%/%postname%/ и URL-адрес /my-category/my-post/, это хорошо, но мне нужно использовать другую таксономию вместо «категории».

Я пытался использовать /%acervo%/%postname%/ но мои адреса пришли с %acervo% на URL, а не название «Acevo» (мое имя) систематика которым пост принадлежит.

я нашел что-то связанное с WP_Rewrite, но без успеха ...

ответ

0

Вы можете попробовать использовать плагин WordPress, No Category Base, а затем жесткий код таксономию в с postname символом, например, так:

/acervo/%postname%/ 

Обратите внимание, что acervo не имеет процентных знаков, поскольку он «жестко закодирован», а не подстановочный знак.

+0

Я не хочу ничего жёстко ... Сообщение принадлежит одному или нескольким 'acervo' (моя таксономия), и я хочу вставить это значение в постоянную ссылку, используя функции wordpress, hooks или filters (если необходимо), чтобы иметь возможность полагаться на' the_permalink() 'функция. –

+0

Я слышу тебя. Я недостаточно разбирался в WP3.0, чтобы узнать, можно ли это сделать, и я уверен, что их документации пока нет. Лучше всего было бы посмотреть в исходном коде, где обрабатывается параметр постоянных ссылок, чтобы увидеть, было ли что-либо изменено/добавлено. – hsatterwhite

0

Просто измените базу своей категории в Dashboard/Settings/Permalinks Не нужно избавляться от базы категорий, а затем добавлять ее снова.

+0

Как я уже сказал в своем вопросе, я не хочу использовать таксономию категории ... Мне нужно использовать таксономию 'acervo' в URL-адресе ... Категория категорий и категория-база не имеют к этому никакого отношения. –

0

Я получаю ... Изменил структуру постоянных ссылок на /%acervos%/%postname%/, а затем нырнул в WP_Rewrite и добавил новый «замены тег» заменяющий %acervos% с (.*) регулярным выражением.

+0

У меня возникла такая же проблема с феноменом (на этот раз сгенерированный плагином). Таким образом, нет способа получить /% таксономии% /% postname%/url, используя настройки постоянных ссылок в панели администратора? Мне все равно нужно это сделать? – Bakaburg

0

Это должно быть трюком.

function acervo_permalink($permalink, $post_id, $leavename){ 
    if (get_option('permalink_structure') != ''){ 
     $post = get_post($post_id); 
     $rewritecode = array(
      '%acervo%' 
     ); 
     if (strpos($permalink, '%acervo%') !== FALSE){ 
      $terms = wp_get_object_terms($post->ID, 'acervo'); 
      if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $acervo = $terms[0]->slug; 
      else $acervo = ''; 
     } 
     $rewritereplace = array(
      $acervo 
     ); 
     $permalink = str_replace($rewritecode, $rewritereplace, $permalink); 
    } 
    return $permalink; 
} 
0

Имейте в виду, что есть подводные камни с почти каждое решение, взглянуть на этот пост, который описывает процесс и обеспечивает наилучшее решение, которое я видел: http://www.nelsonpires.com/general/remove-word-category-from-wordpress-urls/

+0

Ссылка только ответы не приветствуются при переполнении стека. –

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