@ak_wi

Как получить все родительские категории в Wordpress?

Задача: есть пост, который принадлежит к категории 1. Категория 1 в свою очередь - дочка категории А, а категория А может быть дочерней для Категории Z. При этом у категории Z либо у категории А всегда нет родительской категории. Вопрос: можно ли одним запросом, зная ID поста получить ID родительской (самой-самой, в примере - категория Z) категории, у которой нет родительской категории?
  • Вопрос задан
  • 1256 просмотров
Решения вопроса 1
link_web
@link_web
Magento, Laravel, Zend, Shopify, Prestashop, WP
Создайте функцию в functions.php
function smart_category_top_parent_id ($catid) {
    while ($catid) {
        $cat = get_category($catid); // get the object for the catid
        $catid = $cat->category_parent; // assign parent ID (if exists) to $catid
           // the while loop will continue whilst there is a $catid
          // when there is no longer a parent $catid will be NULL so we can assign our $catParent
        $catParent = $cat->cat_ID;
    }
    return $catParent;
}

Затем вызывайте эту функцию в нужном вам месте:
$category = get_the_category($post->ID); //post id
 
$catid = $category[0]->cat_ID;
 
$top_level_cat = smart_category_top_parent_id ($catid);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы