• Решено fornit32

    (@fornit32)


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

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

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

    Автор fornit32

    (@fornit32)

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

    • Ответ изменён 7 лет назад пользователем fornit32.

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

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

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

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

    Модератор Юрій

    (@yube)

    $default_cat_id = get_option('default_category');

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

    Автор fornit32

    (@fornit32)

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

    Автор fornit32

    (@fornit32)

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

    • Ответ изменён 7 лет назад пользователем fornit32.
    • Ответ изменён 7 лет назад пользователем fornit32.
    Модератор Юрій

    (@yube)

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

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

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

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

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

    Автор fornit32

    (@fornit32)

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

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

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

    • Ответ изменён 7 лет назад пользователем fornit32.
    • Ответ изменён 7 лет назад пользователем fornit32.
    Автор fornit32

    (@fornit32)

    SeVlad

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

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

    • Ответ изменён 7 лет назад пользователем fornit32.

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

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

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

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

    Автор fornit32

    (@fornit32)

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

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

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

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

    Модератор Юрій

    (@yube)

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

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

    Автор fornit32

    (@fornit32)

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

    • Ответ изменён 7 лет назад пользователем fornit32.

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

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

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

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

Просмотр 15 ответов — с 1 по 15 (всего 26)

Тема «Как отсеять посты из «категории по умолчанию»» закрыта для новых ответов.