1

我有两个“自定义字段”分配给我的帖子。这两个“自定义字段”名称相同,但“值”不同。目前,我下面的代码只显示了其中一个链接。我试图让它同时显示。因此,每当我添加另一个名为“Featured-Blog”的“自定义字段”时,它都会继续显示所有这些。

自定义字段的
1)名称: Featured-Blog 和Value: 704(704 是 postID)
2)名称: Featured-Blog 和Value: 699(699 是 postID)

用于显示每个帖子的链接的代码。(只能获取自定义字段之一显示)

输出截图

在此处输入图像描述

正在使用的代码

<?php $related = get_post_meta($post->ID, "Featured-Blog", $single=true);

        $related=explode(',',$related);
        $args = array_merge( array('post__in'  => $related, $wp_query->query ) );
        query_posts($args);
        if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

        <div id="<?php the_ID(); ?>">
            <a href="<?php the_permalink();?>"><p class="caption"><?php the_title(); ?></p></a>
        </div>

    <?php endwhile; else: ?>
    <p>no related</p>
    <?php endif; wp_reset_query();?>

现在下面是我最初尝试使用但最终没有使用的旧代码。这个实际上确实拉动了我的两个“自定义字段”。您可以看到它的编码明显不同,因为您可以看到它显示“标题”而不是帖子标题。但我只是以这段代码为例,向您展示可以显示多个“自定义字段”,除非下面的代码可以轻松修复?也许一些代码形式可以合并到我上面的工作脚本中。上面的代码和底部的代码都非常接近我想要做的。似乎一个,有另一个需要的东西。

输出截图

在此处输入图像描述

<div id="related-posts">
<?php
  $custom_fields = get_post_custom($post_id); //Current post id
  $my_custom_field = $custom_fields['Featured-Blog']; //key name
  foreach ( $my_custom_field as $key => $url )
 echo $key ="<a href='".$url."'>TEST</a><br /><br /><br/>";
?>
4

1 回答 1

1

您只需在使用时通过false而不是:trueget_post_meta()

$related = get_post_meta( $post->ID, "Featured-Blog", false );
var_dump( $related );

使用 ,var_dump您将能够看到变量的原始内容。无论如何,您将收到一个数组,因此您可以简单地执行以下操作:

$related = get_post_meta( $post->ID, "Featured-Blog", false );
$args = array_merge( array('post__in'  => $related, $wp_query->query ) );

get_post_custom另一方面,抓取帖子的所有自定义字段并在最后产生相同的结果,它只需要一个额外的命令来获取这些值。

请注意,您不应该使用query_posts.

于 2013-10-20T17:05:15.013 回答