获取并显示自定义帖子字段

时间:2016-01-02 作者:Carol.Kar

我正在使用wpfacet 插件。

我有两个自定义字段:

enter image description here

我试图通过以下代码显示这些内容:

<?php while ( have_posts() ) : the_post(); ?>

         <span class="main"><?php $key_values = get_post_custom_values("Gear",get_the_ID()); ?></span>
         <span class="main"><?php $key_values = get_post_custom_values("Size",get_the_ID()); ?></span>

   <?php endwhile; ?>
但是,什么也没有显示。

我也尝试了以下方法,但仍然得到了相同的结果

<?php get_post_custom_values("Gear",get_the_ID()); ?>

亲切的问候!

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

get_post_custom_values() 用于检索具有多个条目的字段。

说明

如果您希望访问非唯一的自定义字段,即具有多个与其关联的值,则此函数非常有用。否则,您可能希望查看get\\u post\\u meta()。

返回一个数组,其中包含ID为$post\\u ID(如果未指定,则默认为当前帖子)的具有特定键($key)的自定义字段的所有值。

以你现在的方式使用它。。。

。。。不会工作,因为您将获得一个数组。除了PHP语法问题之外,您实际上没有echo什么都可以。

您需要使用get_post_meta() 相反,以及echo 结果:

while ( have_posts() ) {
  the_post(); ?>
  <span class="main"><?php echo get_post_meta("Gear",get_the_ID(),true); ?></span>
  <span class="main"><?php echo get_post_meta("Size",get_the_ID(),true); ?></span>
}
老实说,虽然不是严格意义上的WordPress,但使用稍微复杂一点的代码可能会更好:

$span = \'<span class="main">$s</span>\';
while ( have_posts() ) {
  the_post(); 
  $gear = get_post_meta("Gear",get_the_ID(),true);
  if (!empty($gear)) {
    sprintf($span,$gear);
  }
  $size = get_post_meta("Size",get_the_ID(),true);
  if (!empty($size)) {
    sprintf($span,$size);
  }
}