Как получить собственный идентификатор типа записи - PullRequest
0 голосов
/ 11 мая 2019

У меня есть страница продукта с пользовательским типом записи, теперь я хочу получить идентификатор категории этой конкретной страницы и поместить ее в цикл публикации. И создайте скользкий слайдер с ним.

это то, что я придумал.

страница одного продукта

<section class="product">
    <div class="productslider">
        <?php
        global $post;
        $Taxonomy = get_object_taxonomies('producten');

        if (count($Taxonomy) > 0) {
            foreach ($Taxonomy as $tax) {
                $args = array(
                    'taxonomy' => $tax,
                );

                $cats = get_categories($args);

                $cats = $cats[0]->term_id;
            }
        }

        $args = array('posts_per_page' => 5, 'post_type' => 'producten', 'category' =>  $cats);

        $posts = get_posts($args);
        if ($posts) :
            foreach ($posts as $post) :
                setup_postdata($post); ?>
                <div class="productslider__slide">
                    <?php echo get_the_post_thumbnail(); ?>
                    <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
                </div>

            <?php endforeach;
        wp_reset_postdata();
    endif; ?>
    </div>
</section>

пятно

$('.productslider').slick({
    slidesToShow: 3,
    slidesToScroll: 1,
    autoplay: true,
    autoplaySpeed: 2000,
    arrows: false,
    dots: true,
    centerMode: true,
});

это хорошее решение? похоже, что я получаю одинаковые идентификаторы на каждой странице

Ответы [ 2 ]

1 голос
/ 01 июня 2019

Как я решил, используя ответ Манана Вьяса

$Taxonomy = get_object_taxonomies('producten');
   if (count($Taxonomy) > 0) {
      foreach ($Taxonomy as $tax) {
         $args = array(
            'taxonomy' => $tax,
         );

         $cat_array = array();
         $cats = get_categories($args);  

         foreach($cats as $data) {
            array_push($cat_array, $data->term_id);
         }
      }
   }

$args = array('posts_per_page' => 5, 'post_type' => 'producten', 'category' =>  $cat_array);
1 голос
/ 27 мая 2019

показывает те же идентификаторы, как вы получаете те же идентификаторы из цикла,

вот ваш код

$cats = $cats[0]->term_id;

строка выше получает только первый идентификатор из цикла, и вы используете этот идентификатор категории на get_posts(), поэтому каждый раз вы будете получать один и тот же идентификатор.

попробуйте изменить этот код:

$cat_array   = array();
$cats        = get_categories($args);        
$cat_array[] = $cats->term_id;

$args = array('posts_per_page' => 5, 'post_type' => 'producten', 'category' =>  $cat_array);

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

...