通过高级自定义字段显示自定义帖子类型字段中的所有数据

时间:2015-04-26 00:25:18

标签: wordpress custom-post-type advanced-custom-fields wp-query

我已经遍布谷歌,试图解决这个问题。我已经取得了一些进展但仍然陷入困境。我是ACF和自定义帖子类型的新手。我有一个自定义帖子类型Attorneys我通过WCK设置。该帖子类型的字段组的字段名称为attorney_photoattorney_nameattorney_areas_of_practice。使用下面的代码,我可以显示attorney_nameattorney_areas_of_practice(转发器字段),但不能显示attorney_photo。我在每个律师特定页面上都能正确显示信息,但我需要此页面作为所有律师的列表。不确定我在图片部分做错了什么。

<?php get_header(); ?>

<?php
$args = array(
    'posts_per_page' => 30,
    'order' => 'ASC',
    'orderby' => 'title',
    'post_type' => 'attorneys'
);

query_posts($args);

if ( have_posts() ) : 

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

<div class="attorney-preview">

<?php $photo = get_post_meta($post->ID,'attorney_photo', true); ?>
<img src="<?php echo $photo; ?>" />

<p><strong><a href=""><?php echo get_post_meta($post->ID,'attorney_name', true); ?></a></strong></p>

<ul>
<?php
    while ( have_rows('attorney_areas_of_practice') ) : the_row();
        $attorney_area_of_practice = get_sub_field('attorney_area_of_practice');
        echo "<li>" . $attorney_area_of_practice . "</li>";
    endwhile;   
?>
</ul>

</div><!-- .attorney-preview -->

<?php endwhile; ?>


<?php endif; ?>

<?php
wp_reset_query();  // Restore global post data stomped by the_post().
?>

<?php get_footer(); ?>

2 个答案:

答案 0 :(得分:1)

通过ACF插件添加图像字段时,有一些返回值选项。例如返回值为:图像对象或返回值为:图像网址,在您的情况下,返回值可能被选为图像对象,而不是图像网址。这就是为什么在这里你的代码返回一个数组而不是只返回url。要从此数组中仅获取图像网址,请按以下方式进行更改:

<?php $photo = get_post_meta($post->ID,'attorney_photo', true); ?>
<img src="<?php echo $photo['url']; ?>" />

答案 1 :(得分:0)

试试这个             

        <?php query_posts(array('posts_per_page' => 30,'order' => 'ASC','orderby' => 'title','post_type' => 'attorneys'));

        if (have_posts()) : while (have_posts()) : the_post(); 
        $attorney_photo = get_post_meta($post->ID, 'attorney_photo', true);      
        $attorney_name = get_post_meta($post->ID, 'attorney_name', true); ?>

       <div class="attorney-preview">
         <img src="<?php echo $attorney_photo; ?>" />

          <p><strong><a href=""><?php echo $attorney_name; ?></a></strong></p>

       <ul>
       <?php
       while ( have_rows('attorney_areas_of_practice') ) : the_row();
       $attorney_area_of_practice = get_sub_field('attorney_area_of_practice');
       echo "<li>" . $attorney_area_of_practice . "</li>";
       endwhile;   
        ?>
     </ul>

    </div><!-- .attorney-preview -->

    <?php endwhile; endif; ?>

    <?php
     wp_reset_query();  // Restore global post data stomped by the_post().
     ?>