过滤自定义帖子类型时获取分类描述
Posted
技术标签:
【中文标题】过滤自定义帖子类型时获取分类描述【英文标题】:Get taxonomy description when filtering custom post type 【发布时间】:2022-01-19 22:46:31 【问题描述】:我正在使用自定义帖子类型,并且正在使用类别进行过滤。 每个类别都有描述,我想在选择类别时显示该类别的描述like here
我找到了一种显示分类法描述的方法from here
使用的 HTML:
<div class="col-lg-9">
<div class="lista-portofoliu">
<div class="row">
<?php while ($pquery->have_posts()) : $pquery->the_post();
$term_obj_list = get_the_terms(get_the_id(), 'portfolio_category');
$term_classes_a = array();
$img_data = array();
$img_string = ""; ?>
<?php foreach ($term_obj_list as $term)
$term_classes_a[] = $term->slug;
$meniu_triggers[] = $term->slug;
$meniu_labels[] = $term->name;
$img_key = 'imagine_' . $term->slug;
$img_src = wp_get_attachment_image_src(get_field($img_key, get_the_id()), 'thumbnail');
if ($img_src)
$img_data[] = 'data-' . $img_key . '="' . $img_src[0] . '"';
else
$img_data[] = 'data-' . $img_key . '="' . wp_get_attachment_image_src(get_field($img_key, get_the_id()), 'full') . '"';
foreach ($img_data as $imagine) :
$img_string .= $imagine;
endforeach;;
?>
<?php $term_classes = implode(" ", $term_classes_a); ?>
<div class="col-lg-4 p-1 m-0 item toate <?php echo $term_classes; ?>">
<div class=" item-content" <?php echo $img_string; ?> data-imagine_toate="<?php echo get_the_post_thumbnail_url(get_the_id(), 'thumbnail', true); ?>" style="background-image:url('<?php echo get_the_post_thumbnail_url(get_the_id(), 'thumbnail', true); ?>')">
<a href="<?php the_permalink(); ?>" class=" item-overlay">
<span class="item-title">
<?php the_title(); ?>
<br>
<br>
</span>
</a>
</div>
</div>
<?php endwhile;
?>
<?php
wp_reset_postdata(); ?>
</div>
<button type="button" id="more_posts" class="btn btn-dark loadMore center-block btn-pachete">Mai mult</button>
</div>
</div>
谢谢!
【问题讨论】:
您的问题不完整。什么不起作用,是什么阻止您实施研究? 每次我使用过滤器(类别)时,我希望第一个框(显示自定义帖子的位置)显示类别的描述(用 wordpress 编写) 好的。我让你参与了第一部分。是什么阻止你这样做?您已经找到了如何输出描述,但您是否尝试过实现它? 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:如果您想按投资组合类别对所有内容进行排序,则应首先遍历 portfolio_category
分类中的每个术语。
对于每个术语,创建一个新查询,在其中使用 tax_query
仅获取与我们正在循环的当前术语相关的帖子。
结果将是每个循环都包含类别数据和与该类别相关的帖子。
您可以通过回显$term->description
值来输出类别描述。
<?php
$terms = get_terms('portfolio_category');
if (!is_wp_error($terms)) :
foreach ($terms as $term) : ?>
<div class="row">
<?php
$args = [
'post_type' => 'YOUR_CUSTOM_POST_TYPE',
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => [
[
'taxonomy' => 'portfolio_category',
'field' => 'term_id',
'terms' => $term->term_id
]
]
];
$query = new WP_Query($args);
if ($query->have_posts()) : ?>
<div class="col-lg-4">
<?= $term->name; ?>
<?= $term->description; ?>
</div>
<?php
while ($query->have_posts()) :
$query->the_post(); ?>
<div class="col-lg-4">
<?php the_title(); ?>
</div>
<?php
endwhile
wp_reset_postdata();
endif; ?>
</div>
<?php
endforeach;
endif;
【讨论】:
嗨,我已经尝试了代码。因此,据我了解,这显示了所有类别的描述。我需要的是,只有当我选择某个类别(过滤器)时,才能仅显示所选类别的描述以及具有该属性的项目(帖子)。 (我对提问有点陌生,请与我交谈) 啊,我明白了。好吧,同样的事情也适用于这段代码 sn-p,但我们不会循环遍历 所有 个术语,而是应用一个术语或一组术语来显示描述和帖子。不幸的是,我没有过滤值的示例。你能提供吗?但是,当前的答案是否接近您的问题的意思。你是新手,这完全没问题。继续。 :) 你好,会尽快申请,假期没时间,谢谢,新年快乐!以上是关于过滤自定义帖子类型时获取分类描述的主要内容,如果未能解决你的问题,请参考以下文章
如何获取在 Wordpress 中按类别过滤的自定义帖子类型的永久链接?
使用 Ajax 的带有自定义分类法的 Wordpress 多个自定义帖子类型过滤器 - 所有新创建的帖子都不会在响应中显示