#wordpress #while-loop #custom-post-type
Вопрос:
У меня есть сайт wordpress, который я перенял, и функция фильтра перестала работать на странице тематических исследований. Пользовательские категории из пользовательского типа записей были созданы и загружены в идентификатор данных. Чтобы фильтр работал, ему нужно снова выдать идентификатор категории данных, но я могу получить только один, чтобы пройти. Как я могу заставить его показывать правильный идентификатор категории данных.
Код ниже, и место, где он вызывает идентификатор, находится здесь категория->term_id; а затем снова ниже он пытается повторить его данные-категория=»echo $terms[0]->>term_id; но я не могу получить второй идентификатор данных для заполнения. Полный код ниже. Спасибо
<?php
get_header();
$caseStudyCategories = get_terms('case-study-categories', array('hide_empty' => true));
$caseStudyRanges = get_terms('case-study-ranges', array('hide_empty' => true));
?>
<section class="case-studies-archive">
<div class="container py6">
<h1 class="h2 md-h2 text-center">
<span>
<?php echo get_field('case_study_archive_title', 'option'); ?>
</span>
</h1>
<div class="wysiwyg mx-auto bold md-max-width-60 text-center">
<?php echo get_field('case_study_introduction', 'option'); ?>
</div>
<div class="flex items-center justify-center pt5 pb2">
<div><span class="filter__by_label « bold h4 mx2">Filter By:</span></div>
<div><span class="filter__by_category « mx2 cursor-pointer" data-id="all" data-state="0">All</span></div>
<?php if (!empty($caseStudyCategories)) :
foreach ($caseStudyCategories as $category):
?>
<div><span class="filter__by_category « mx2 cursor-pointer" data-id="<?php echo $category->term_id; ?>" data-state="0"><?php echo $category->name; ?></span></div>
<?php endforeach;
endif;
?>
</div>
</div>
<main>
<div class="case_study__grid">
<div class="grid-sizer"></div>
<?php
$args = array(
'posts_per_page' => -1,
'post_type' => 'casestudies',
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DSC',
);
$posts = new WP_Query($args);
$info_panels = get_field('case_studies_info_panels', 'option');
// Insert the panels into the posts.
$merged_posts = $posts->posts;
foreach ($info_panels as $key => $post) {
// Convert the panel to an array.
$insert = array($post);
// Inset at position -1 for the array index starting at 0.
array_splice($merged_posts, $post['position'] - 1, 0, $insert);
}
// Output the posts: Object is post object, else its a panel.
foreach ($merged_posts as $key => $post) :
if (is_object($post)) :
global $post;
$post = get_post($post);
setup_postdata($post);
$banner_image = wp_get_attachment_url(get_post_thumbnail_id(), 'large');
?>
<div class="case_study__element key-<?php echo $key; ?> <?php echo (!empty(get_field('grid_height'))) ? "height-" . get_field('grid_height') :""; ?> <?php echo (!empty(get_field('grid_width'))) ? "width-" . get_field('grid_width') :""; ?>" data-category="<?php echo $terms[0]->term_id; ?>">
<a href="<?php echo the_permalink(); ?>" class="show_on_hover">
<div class="relative" style="background-image:url('<?php echo $banner_image; ?>'); background-size: cover;">
<div class="show show-5 absolute top-0 left-0 width-100 height-100 z2 opacity-5" style="background-color: black"></div>
<div class="show height-100 white z3 relative flex items-center justify-center flex-column px5">
<figure class="ornament">
<span class="keep">
<img src="http://staging.masterframe.d3z.uk/wp-content/uploads/2020/05/mf-rosett-50x70pix.png" />
</span>
</figure>
<h4 class="white text-center h2 mb0"><?php echo get_the_title(); ?></h4>
<span data-element="button" data-button-style="keyline_white" tabindex="0">Read More</span>
</div>
</div>
</a>
</div>