Таксономия: Почему 'with_front' => false НЕ РАБОТАЕТ?

10 сент. 2011 г., 23:49:56
Просмотры: 23.1K
Голосов: 12

Серьезно, почему 'with_front' => false не работает как должно? Предполагается, что он должен удалять БАЗОВОЕ ИМЯ ТАКСОНОМИИ, и мой вопрос - почему это не работает?

Я просто не хочу, чтобы базовый слаг таксономии появлялся в моем URL, и в документации говорится, что 'with_front' => false должен помочь, но он не помогает. Оставление пустого слага как 'slug'=> '' генерирует ошибку 404.

register_taxonomy("tax_categories", array("products"), array(
    "hierarchical" => true,
    "label" => "Категории",
    "singular_label" => "Категория",
    "show_ui" => true,
    'update_count_callback' => '_update_post_term_count',
    "rewrite" => array(     
        'with_front' => false,      
        'hierarchical' => true      
        )
    ));

Эта проблема должна была быть исправлена http://core.trac.wordpress.org/ticket/16807

Пожалуйста, помогите разобраться в этом. Спасибо.

5
Комментарии

Попробуйте перейти в настройки --> постоянные ссылки и нажать сохранить, или сбросьте правила перезаписи.

Wyck Wyck
11 сент. 2011 г. 05:27:07

Как сказал Мэнни, with_front не удаляет базовое название таксономии. Я предполагаю, вы хотите изменить формат ссылки с /tax-categories/banana/ на /banana/? Был вопрос об этом (это довольно сложно), но сейчас я не могу его найти.

Jan Fabry Jan Fabry
12 сент. 2011 г. 08:59:59

именно это и нужно.

Alex Alex
12 сент. 2011 г. 11:48:46

Проблема в том, что вам нужно указывать название таксономии, чтобы WordPress понимал, что следующая часть — это термин таксономии. Единственный известный мне способ — создать полностью пользовательскую постоянную ссылку. Вы знаете, как должна выглядеть ваша постоянная ссылка?

Manny Fleurmond Manny Fleurmond
12 сент. 2011 г. 15:14:06

Другой вопрос, на который ссылается @JanFabry, возможно, этот: https://wordpress.stackexchange.com/questions/21076/remove-taxonomy-base-or-term-from-url/21102#21102

Tim Malone Tim Malone
8 мар. 2018 г. 05:29:15
Все ответы на вопрос 3
1
12

Чтобы убрать базовое название таксономии, можно использовать:

'rewrite' => ['slug' => '/', 'with_front' => false]

Однако это вызовет ошибку 404 для ваших (обычных) записей, если у вас установлены постоянные ссылки вида http://example.com/sample-post/. Похоже, нельзя одновременно разместить и пользовательскую таксономию, и записи в корне сайта. В этом случае нужно перейти в настройки постоянных ссылок и задать произвольную структуру, например /blog/%postname%/.

Важное замечание

Побочный эффект — ваши пользовательские типы записей (CPT) также получат этот "префикс", например blog/products. Именно здесь помогает параметр 'with_front' => false. Он предназначен для отключения использования произвольной структуры в начале URL. Поэтому при регистрации типа записи product нужно указать:

register_post_type( 'products',  array(
           'rewrite' => array(
                'slug' => 'products',
                'with_front' => false
            ),
            /* ... */
));
21 июн. 2018 г. 17:07:44
Комментарии

Кто-то пожаловался на ваш ответ. Но я считаю его уместным.

Usman Ahmed Usman Ahmed
3 мая 2019 г. 05:11:09
1
11

Параметр with_front определяет, может ли ссылка таксономии иметь что-либо перед ней, то есть дополнительные элементы постоянных ссылок из настроек ЧПУ. Например, если with_front установлен в true, возможен такой вариант:

blah.com/2011/09/tax/term

Если он установлен в false, возможен только такой формат:

blah.com/tax/term
11 сент. 2011 г. 15:39:19
Комментарии

Понятно... но это не помогает. Как убрать часть /TAX/ из таксономии?

Alex Alex
12 сент. 2011 г. 11:50:58
4

Используйте следующий код:

'rewrite' => array( 
    'slug'          => '.',
    'with_front'    => false 
),

Обратите внимание, что при перезаписи ярлыка откроется шаблон страницы по умолчанию, когда вы перейдёте на страницу таксономии.

21 янв. 2014 г. 12:07:57
Комментарии

В дополнение к сказанному @tf, пожалуйста, объясните почему ваш код предлагает решение.

shea shea
21 янв. 2014 г. 13:43:45

Это решение действительно работает и должно быть принятым ответом.

tehlivi tehlivi
13 апр. 2017 г. 00:05:42

Выдает ошибку 404, несмотря на то что я пересохранил постоянные ссылки. URL в браузере переписывается (но не в области постоянной ссылки записи), однако в браузере все равно отображается 404.

Garconis Garconis
7 авг. 2018 г. 21:07:38

Не знал, что это возможно для таксономии. Я использовал это, сохраняя slug без изменений. Работает отлично!

Loosie94 Loosie94
18 сент. 2020 г. 12:58:11