PHP高级自定义字段

时间:2013-07-16 16:50:45

标签: php wordpress wordpress-plugin advanced-custom-fields

这可能是一个基本问题,但我似乎无法找到正确的解决方案。

在高级自定义字段中,我已经设置了一个Field Group CD,在CD中有三个字段,title,info,author,如果category = CD,则显示该组

因此,当我使用类别CD创建新帖子时,我会填写这三个字段。 CD类别中有10个帖子。

现在我遇到的问题是在页面上显示所有帖子。

这是我试过的代码

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

       <?php query_posts( array(      'posts_per_page' => -1,      'cat' => '6',     'CD' => ( get_query_var('CD') ? get_query_var('CD') : 1 ), ));

            if (have_posts()) {
               while (have_posts()) {
                  the_post();
            get_post_meta();
                } // end while
                } // end if
            ?>


            <?php endwhile; endif; ?>

这会返回错误Warning: Missing argument 1 for get_post_meta(), called in /Volumes/shared/Digital/_Websites/londonconchord/wp-content/themes/conchord/t-disc.php on line 25 and defined in /Volumes/shared/Digital/_Websites/londonconchord/wp-includes/post.php on line 1792

我尝试了不同的尝试

<p><?php query_posts( 'cat=6' ); 
      the_field('title');
      the_field('info');
      the_field('author'); ?></p>

我在这里有更多的运气,因为我正在打印一些信息,但是只有该类别中的第一篇文章并且它一直在重复,我想要所有10个帖子而且没有重复。

我认为我只是在寻找那些最终指针

由于

4 个答案:

答案 0 :(得分:1)

我的解决方案(最后,)希望这可以帮助其他人

 <?php

           $args = array('cat' => 6);
           $category_posts = new WP_Query($args);

           if($category_posts->have_posts()) : 
              while($category_posts->have_posts()) : 
                 $category_posts->the_post();
        ?>
                <div class="article">
                <div class="articleinfo">
                <h3><?php the_field('title'); ?></h3>
                <?php the_field('author'); ?>
                <?php the_field('label'); ?>
                    </div>
           <img src="<?php the_field('cd_image'); ?>" height="200" width="200" alt="cd-image" />

            </div>

        <?php
              endwhile;
           else: 
        ?>

              Oops, there are no posts.

        <?php
           endif;
        ?>

循环播放所有帖子并拉出我需要的ACF

答案 1 :(得分:0)

似乎get_post_meta()有变量而你却错过了它。

与预期的get_post_meta($var)相同,但您只是致电get_post_meta()。希望它有所帮助。

答案 2 :(得分:0)

你没有正确地查询我不这么认为。

你需要抓住字段

get_field('YOUR FIELD NAME') );

然后循环并获取您需要的子字段。

the_sub_field('YOUR SUB FIELD');

实施例

    <?php if(get_field('YOUR FIELD NAME')): while(has_sub_field('YOUR FIELD NAME')): ?>
        <img class="logo" src="<?php the_sub_field('logo'); ?>" />
        <h1><?php the_sub_field('title'); ?></h1> 
    <?php endwhile; endif; ?>

举个例子。希望这有帮助......让我知道。

答案 3 :(得分:0)

我无法获得上述解决方案的工作,感谢各位大家的意见,

这是我到目前为止的解决方案

<h3><?php the_field('title', 475); ?></h3>
                    <?php the_field('info', 475); ?>
                    <?php the_field('author', 475); ?>
                        </div>
               <img src="<?php the_field('cd_image', 475); ?>" height="200" width="200" alt="" />

然后我重复这个并将id从475更改为其他人,现在我已经将所有帖子都拉进去了,但是我只能在这段代码中添加任何新帖子。

我可以使用wp查询在变量中提取这4个字段,然后打印该变量,然后遍历该类别,直到打印完所有帖子?