Поддержка Проблемы и решения Как отсеять посты из «категории по умолчанию»

  • Всем привет!
    Возможно ли в цикле отсеять посты из категории по умолчанию? Получается, что в данном случае не известен id категории…

Просмотр 15 ответов — с 1 по 15 (всего 26)
  • Получается, что в данном случае не известен id категории…

    С чего бы? У любой рубрики (а не категории) всегда есть ID.

    Я в том смысле, что если выбрать другую категорию — «категорией по умолчанию», то id изменится, а например: посты будут выводиться уже из той категории которую назначили «категорией по умолчанию»…

    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.

    Я в том смысле, что если выбрать другую категорию — «категорией по умолчанию», то id изменится,

    Логично. И делать это имеет право (в см — должен) только админ. Со всем осознанием последствий.

    а например: посты будут выводиться уже из той категории которую назначили «категорией по умолчанию»…

    Где «выводиться»? И как?
    Выводиться будет по тем РУБРИКАМ, которые нужны. Вне зависимости какая из них назначена по умолчанию ДЛЯ ПУБЛИКАЦИЙ.

    Модератор Yuri

    (@yube)

    $default_cat_id = get_option('default_category');

    Только отсеивать надо не «в цикле», а перед ним, во время выборки, при помощи обработчика хука pre_get_posts.

    Юрий СПАСИБО! А в вукомерс это тоже будет работать?

    В цикле я хочу исключить эти посты например: получая последние опубликованные… Но это можно сделать и циклом в цикле сверяя id при помощи того что Юрий написал…

    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.
    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.
    Модератор Yuri

    (@yube)

    А в вукомерс это тоже будет работать?

    Конечно нет. У WC своя настройка ‘default_product_cat’. И постов у него, кстати, нет, у него товары, атрибуты, заказы и прочие кастомные типы записей с кастомными же типами таксономий.

    Но это можно сделать и циклом в цикле сверяя id…

    Можно и на красный ходить, и руки не мыть 🙂 Я написал как правильно, а делать правильно или по-своему — это уже личное дело каждого.

    ..Я лично вообще не понимаю зачем эти извращения. Можно подумать, дефолная рубрика каждый день меняется.

    Юрий Спасибо большое я это и хотел! Не важно посты или товары, категории или рубрики в php они почти одно и тоже!
    Вдруг кому-то пригодится, благодаря Юрию получено решение, я в гугле не нашел:

    Получить id рубрики(для постов) установленной по умолчанию:
    $default_cat_id = get_option(‘default_category’);
    Используется вне цикла.

    Получить id категории(woocommerce, для товаров) установленной по умолчанию:
    $default_cat_product_id = get_option(‘default_product_cat’);
    Используется вне цикла.

    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.
    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.

    SeVlad

    ..Я лично вообще не понимаю зачем эти извращения. Можно подумать, дефолная рубрика каждый день меняется.

    Это нужно чтобы не вспоминать в каком файле этот отсев, не возвращаться к нему или чтобы делая сайт для заказчика не объяснять ему, что если он это изменит, то звони мне)))
    Тем более, что заказчик обязательно забудет и в целом это наиболее грамотное решение!

    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.

    Тем более, что заказчик обязательно забудет и в целом это наиболее грамотное решение!

    Не могу представить ситуации когда на рабочем сайте может понадобится изменить дефолтную рубрику (тем более без других работ).
    А лишние запросы и обработки кмк тут именно что лишние.

    Про «вспоминать в каком файле» тоже смешно 🙂

    Но да ладно, каждому своё.

    Но да ладно, каждому своё.

    Когда сайтов клиентов несколько десятков такое бывает…

    Не могу представить ситуации когда на рабочем сайте может понадобится

    Пример того когда нужно получить id такой категории:
    Слайдер выводит товар, в каждом товаре выводится категории к которым он принадлежит, иногда заказчик сохраняется до указания категории и бывает что у него из нескольких категорий к которым он причислил этот товар — «Uncategorized»…
    Чтобы в слайдере не было надписи Uncategorized это и делается! Либо совсем исключить товар из слайдера, вдруг он его не закончил и это как черновик, я со всего сайта скрываю товары из этой категории, многим удобно используют как черновик — потому что тупят постоянно, заказчики часто не разбираются в этом иначе бы сами сайты делали)
    А на каждом сайте в woocommerce почему то разный id в «категории по умолчанию» даже если её не меняли… Поэтому такое универсальное решение очень помогает…

    Модератор Yuri

    (@yube)

    А на каждом сайте в woocommerce почему то разный id в «категории по умолчанию» даже если её не меняли…

    Потому что id тов. категории — это автоинкрементный суррогатный ключ, причем сквозной для всех термов всех таксономий сайта. Его значение зависит от того, сколько термов было создано до того. С записями всех типов — та же фигня )

    Юрий Спасибо! Я как раз этот вопрос писал!)))
    SeVlad (@sevlad) Выходит что такое решение в woocommerce вообще просто необходимо, т.к. id меняется при добавлении новых категорий!

    • Ответ изменён 5 лет, 4 месяца назад пользователем fornit32.

    Выходит что такое решение в woocommerce вообще просто необходимо, т.к. id меняется при добавлении новых категорий!

    За несколько лет моего общения на нескольких форумах (и работы с клиентами) я не припомню кому бы ещё пришло в голову таким заниматься. Вы первый 🙂

    А ID, кстати, НЕ меняется. Меняться может всё что угодно, но не ID 🙂

    И пож, не нужно пинговать (писать ник через @)

Просмотр 15 ответов — с 1 по 15 (всего 26)
  • Тема «Как отсеять посты из «категории по умолчанию»» закрыта для новых ответов.