【问题标题】:How to display Wordpress advanced custom field inside post category loop?如何在帖子类别循环中显示 Wordpress 高级自定义字段?
【发布时间】:2020-07-08 12:26:25
【问题描述】:

如何替换高级自定义字段的标准帖子类别链接?

我使用以下代码在每个帖子中显示相关类别

<?php while ( have_posts() ) : the_post(); ?>
   <h1><?php the_title(); ?></h1>
   <p>
     <strong>Found in:</strong>
     <?php 
     $id = get_the_ID();
     $cats = get_the_category($id);

     $c = 0; $n = 0;
     $c = count($cats);
     foreach ( $cats as $cat ):
       $n++; ?>
       <a href="<?php echo get_category_link($cat->cat_ID); ?>">
         <?php echo $cat->name; echo ( $n > 0 && $n < $c ? ', ' : ''); ?>
       </a>
    <?php endforeach; ?>
  </p>
<?php endwhile; ?>

我想将 href 中显示的默认类别 url 替换为我的自定义类别字段,称为循环内每个类别的自定义 url。

【问题讨论】:

    标签: wordpress advanced-custom-fields


    【解决方案1】:

    有几种方法可以做到这一点。

    此选项是使用get_post_meta() 的默认“WP 方式”,更多信息请参见:https://developer.wordpress.org/reference/functions/get_post_meta/

    <?php while ( have_posts() ) : the_post(); ?>
       <h1><?php the_title(); ?></h1>
       <p>
         <strong>Found in:</strong>
         <?php 
         $id = get_the_ID();
         $cats = get_the_category($id);
    
         $c = 0; $n = 0;
         $c = count($cats);
         foreach ( $cats as $cat ):
            $my_custom_url = get_post_meta($cat->cat_ID, 'custom_url', true);
           $n++; ?>
           <a href="<?php echo $my_custom_url; ?>">
             <?php echo $cat->name; echo ( $n > 0 && $n < $c ? ', ' : ''); ?>
           </a>
        <?php endforeach; ?>
      </p>
    <?php endwhile; ?>
    

    如果使用高级自定义字段,您可以使用get_field()https://www.advancedcustomfields.com/resources/get_field/

    <?php while ( have_posts() ) : the_post(); ?>
       <h1><?php the_title(); ?></h1>
       <p>
         <strong>Found in:</strong>
         <?php 
         $id = get_the_ID();
         $cats = get_the_category($id);
    
         $c = 0; $n = 0;
         $c = count($cats);
         foreach ( $cats as $cat ):
            $my_custom_url = get_field('custom_url', $cat->cat_ID);
           $n++; ?>
           <a href="<?php echo $my_custom_url; ?>">
             <?php echo $cat->name; echo ( $n > 0 && $n < $c ? ', ' : ''); ?>
           </a>
        <?php endforeach; ?>
      </p>
    <?php endwhile; ?>
    

    【讨论】:

    • 这对我来说很有意义,但由于某种原因,两者都不起作用。 href 只是显示为空白,就像其中没有任何内容一样。 custom_url 字段已在所有类别的管理中填充,但不会拉到前端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 2020-05-11
    相关资源
    最近更新 更多