如何在 wordpress 的类别上使用自定义字段?

How can I use custom field on categories in wordpress?

我已将自定义字段添加为 color-code 到我的类别,我想显示每个 post 的类别并带有该颜色代码。我尝试了下面的代码,但它无法按我需要的方式工作。

 <div class="blog-post-grids">
      <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $args = array('post_type' => 'post', 'posts_per_page' => 9, 'paged' => $paged);
         $wp_query = new WP_Query($args);
         while (have_posts()): the_post();?>
         <?php 
          $color = get_field('color-code', the_category());
         ?>
         <figure class="blog-post-cart">
           <div><?php the_post_thumbnail();?></div>
           <figcaption>
              <a href="<?php the_permalink() ?>">
                <h2><?php the_title()?></h2>
              </a>
              <p style="color: <?php echo $color ?>">
               <?php echo the_category(', ')  ?>
              </p>
              <?php the_content(''); ?>
           </figcaption>
         </figure>
        <?php endwhile;?>
    </div>

视色码类型而定

如果在十六进制前加#,

或者确保它是 rgb 格式,如 rgb(143 98 188)

为此,您需要类别的 ID,如下所述: https://www.advancedcustomfields.com/resources/adding-fields-taxonomy-term/

您的 get_field() 格式如下:

$color = get_field('color-code', 'category_123');

其中“123”是类别的 ID。

在 get_field 赞之前,添加:

$thisCategory = get_the_category();

$thisCategory 将是循环中附加到当前 post 的所有类别的数组。

然后将你的 $color = get_field() 行替换为:

$color = get_field('color-code', 'category_'.$thisCategory[0]->term_id);

$thisCategory[0]->term_id 将 return 附加到 post 的第一个类别的类别 ID。

因此,将所有内容放在一起,这将是新代码:

 <div class="blog-post-grids">
  <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array('post_type' => 'post', 'posts_per_page' => 9, 'paged' => $paged);
     $wp_query = new WP_Query($args);
     while (have_posts()): the_post();?>
     <?php 
      $thisCategory = get_the_category();
      $color = get_field('color-code',  'category_'.$thisCategory[0]->term_id);
     ?>
     <figure class="blog-post-cart">
       <div><?php the_post_thumbnail();?></div>
       <figcaption>
          <a href="<?php the_permalink() ?>">
            <h2><?php the_title()?></h2>
          </a>
          <p style="color: <?php echo $color ?>">
           <?php echo the_category(', ')  ?>
          </p>
          <?php the_content(''); ?>
       </figcaption>
     </figure>
    <?php endwhile;?>
</div>