博客 / WordPress 教程

如何输出打印新品推荐或新品分类

需求信息

1、通过ACF为系统的category创建了两个自定义字段分分别为cat_cover_image(图片url) 、 new_series(true or false型,勾选则显示在首页);

2、需要打印出new_series为勾选状态下的分类名称+链接、cat_cover_image(封面图);

3、打印的Layout参考按如下格式进行:

<div class="entry portfolio-item  border-0">
  <div class="portfolio-image">
    <a href="分类链接"><img src="分类封面图" ></a>
  </div>
  <div class="portfolio-desc entry-body px-0 pt-3 text-center">
    <h4 class="entry-title"> <a href="分类链接">分类名称</a></h4> 
  </div>
</div>

实施方法

通过ACF获取自定义字段,并根据new_series字段的状态来筛选需要显示的分类。下面的代码示例展示了如何实现这个功能,并将分类名称、链接、和封面图按照你提供的布局输出:

<?php
// 获取所有分类
$categories = get_categories(array(
    'taxonomy' => 'category',
    'hide_empty' => false, // 显示没有文章的分类
));

// 遍历每个分类,检查new_series字段是否为勾选状态
if ($categories) :
    foreach ($categories as $category) :
        // 获取自定义字段的值
        $new_series = get_field('new_series', 'category_' . $category->term_id); // 获取new_series
        $cat_cover_image = get_field('cat_cover_image', 'category_' . $category->term_id); // 获取cat_cover_image
        
        // 检查new_series是否为true
        if ($new_series) : ?>
            <div class="entry portfolio-item border-0">
                <div class="portfolio-image">
                    <a href="<?php echo get_category_link($category->term_id); ?>">
                        <img src="<?php echo esc_url($cat_cover_image); ?>" alt="<?php echo esc_attr($category->name); ?>">
                    </a>
                </div>
                <div class="portfolio-desc entry-body px-0 pt-3 text-center">
                    <h4 class="entry-title">
                        <a href="<?php echo get_category_link($category->term_id); ?>">
                            <?php echo esc_html($category->name); ?>
                        </a>
                    </h4>
                </div>
            </div>
        <?php endif;
    endforeach;
endif;
?>

代码说明:

  1. 获取分类: 使用 get_categories() 获取所有分类。
  2. 获取ACF自定义字段: 使用 get_field() 获取 new_seriescat_cover_image 的值。
  3. 检查new_series状态: 只有在 new_series 被勾选(为 true)时,才会输出分类的名称、链接、和封面图。
  4. HTML布局: 输出的HTML结构与您提供的相匹配,包括封面图和分类名称的链接。

注意事项:

  • 请确保你已经通过ACF设置了分类的自定义字段,并正确绑定了 category 类型的字段组。

如何输出单品?

如果需要打印Post信息(产品单品为“新品”),参考代码如下:

<?php
  $posts_per_row = 2; // 每行的文章数量
  $args = array(
      'post_type' => 'product',
      'posts_per_page' => 3, // 获取数量
      'meta_query' => array(
        array(
            'key' => 'new_arrivals', // 字段名称
            'value' => '1', // 对于 true,通常存储为 '1'
            'compare' => '==', // 比较方式
        ),
      ),
  );
  $tit_query = new WP_Query($args);
  if ($tit_query->have_posts()) :
      $i = 0; // 用于跟踪当前文章索引
      while ($tit_query->have_posts()) : $tit_query->the_post();
      ?>
        <div class="col-md-4"><?php get_template_part( 'template-parts/items', 'product' );  ?></div>
      <?php $i++;
      endwhile;
     
      wp_reset_postdata();
else : ?>
  <p><?php esc_html_e('No portfolio found.', 'textdomain'); ?></p>
  
<?php 
endif; ?>

评论留言

您的邮箱地址不会被公开。 必填项已用 * 标注