获取与当前帖子相关的元信息

时间:2015-02-16 作者:ReynierPM

我正试图通过键获取元信息rw_related_link 对于每个帖子,但我的代码是错误的,因为取而代之的是与当前帖子相关的,我在所有帖子中都得到了相同的代码,这是错误的。这就是我的single.php:

if (have_posts()) {
    while (have_posts()) {
        the_post();       

        $normal_args   = array(
            \'ignore_sticky_posts\' => 1,
            \'order\'               => \'desc\',
            \'meta_query\'          => array(
                array(
                    \'key\'     => \'rw_related_link\'
                )
            ),
            \'post_status\'         => \'publish\',
            \'posts_per_page\'      => 6
        );

        $normal_query  = new WP_Query( $normal_args );

        if ($normal_query->have_posts()) { ?>
            <section class="single_relations sih1">
                <ul>
                    <?php while ($normal_query->have_posts()) {
                        $normal_query->the_post();
                        ?>
                        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
                    <?php
                    } ?>
                </ul>
            </section>
        <?php }
        wp_reset_postdata();
    }
}
我的代码有什么问题?

2 个回复
最合适的回答,由SO网友:Bruno Rodrigues 整理而成

就像您在代码中使用键查询帖子的方式一样rw_related_link.

如果我理解正确,则必须在循环中使用get\\u post\\u meta。

<?php while ($normal_query->have_posts()) {
          $normal_query->the_post(); 
          $related_link = get_post_meta(get_the_ID(), \'rw_related_link\', true);
          // The value you want is in $related_link variable.
?>
          <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php } ?>
希望有帮助。

SO网友:bosco

传递给的参数the WP_Query class\'s构造函数用于描述您正在“查找”的帖子,并希望从数据库中检索这些帖子-the \'meta_query\' argument 用于检索包含特定元键和/或值的帖子。

为了实际操作(即创建/检索/更新/删除)post元数据,您应该使用Metadata API - 在这种情况下,the get_metadata() function 特别是。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post