• Как отменить проверку на уникальность slug в рубриках? Для записей такую проверку отключаю с помощью следующего кода

    add_filter( 'wp_unique_post_slug', function( $slug, $post_id, $post_status, $post_type, $post_parent, $original_slug ) {
        if ( $post_type == 'post' )
            $slug = $original_slug;
    
        return $slug;
    }, 10, 6 );

    Есть ли что-то подобное для рубрик?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    А вместо условия
    if ( $post_type == 'post' )
    какое условие для рубрик нужно прописать?

    Попробовал код

    add_filter( 'filter_wp_unique_term_slug', function( $slug, $term, $original_slug ) {
        if ( term_exists( $slug ) )
    	$slug = $original_slug;
    
        return $slug;
    }, 10, 3 );

    При сохранении рубрики с уже существующим slug пишет «Рубрика не обновлена.». Подскажите, куда копать.

    Точно ли нужно смотреть в сторону wp_unique_term_slug()? По коду видно, что этот фильтр просто добавляет к неуникальным slug номер или родительский slug.
    По смыслу более подходит фильтр wp_update_term_data(). Или я ошибаюсь?

    @sergeybiryukov прошу прощения за беспокойство. Можете поподробнее рассказать про хук wp_unique_term_slug()? Зашел в тупик.

    Автор dmitriy88

    (@dmitriy88)

    Пробовал данный код. Не помогает, все равно пишет при сохранении «Рубрика не обновлена.» В чем может быть проблема?

    # Отключаем проверку на уникальность ярлыка slug для таксономии category
    add_filter( 'wp_unique_term_slug', function( $slug, $term, $original_slug ) {
    
    	if( 'category' === $term->taxonomy )
    		return $original_slug;
    
    	return $slug;
    }, 10, 3 );
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Отмена уникальности slug для рубрик» закрыта для новых ответов.