Вернуться в подкатегорию не в родительском - PullRequest
0 голосов
/ 07 октября 2019

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

Проблема в том, что в моей текущей функции при переходе к продукту функция возвращает меня в родительскую категорию, а не в подпункт.

- Category
  |-> Sub Category
     |-> Product

Функция

function previous_next_product(){

    echo '<div class="prev_next_buttons">';

    // Get parent product categories on single product pages
    $terms = wp_get_post_terms( get_the_id(), 'product_cat', array( 'include_children' => true ) );

    // Get the first main product category (not a child one)
    $term = reset($terms);
    $term_link =  get_term_link( $term->term_id, 'product_cat' ); // The link
    echo '<a href="'.$term_link.'"><i class="fa fa-bars" aria-hidden="true"></i></a>';

   // 'product_cat' will make sure to return next/prev from current category
   $previous = next_post_link('%link', '&larr;', TRUE, ' ', 'product_cat');
   $next = previous_post_link('%link', '&rarr;', TRUE, ' ', 'product_cat');

   echo $previous;
   echo $next;

   echo '</div>';

}

1 Ответ

0 голосов
/ 07 октября 2019

Вы можете использовать get_category , чтобы получить объект категории, и можете легко извлечь slug или любую другую необходимую информацию.

Вот пример кода:

//load data of your child category
$child = get_category(CHILD_CATEGORY_ID_HERE);

//from your child category, load sub parent object
$sub_parent = get_category($child->parent);

//load parent from your sub parent
$parent = get_category($sub_parent->parent);

//extract slug like this
echo $sub_parent->slug; //will print slug of sub parent

И чтобы проверить, если у category есть родитель, вы можете использовать это:

if($child->parent){
   //extract subchild slug here
   //can do similar check for parent, if exists then extract parent object info
}

Используя этот код, вы можете извлечь :

  1. Ребенок
  2. Родитель-младший
  3. Родитель

Надеюсь, это поможет! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...