Отображение всех данных из пользовательских полей типа записей через расширенные пользовательские поля

Я просмотрел весь Google, пытаясь понять это. Я добился определенного прогресса, но все еще застрял. Я довольно новичок в ACF и пользовательских типах постов. У меня есть пользовательский тип сообщения Attorneys что я настраивал через WCK. Этот тип записи имеет группу полей с именами полей attorney_photo, attorney_name а также attorney_areas_of_practice, С кодом ниже, я могу получить attorney_name а также attorney_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 ответа

Когда вы добавляете поле изображения через плагин ACF, есть несколько вариантов возвращаемого значения. Например, возвращаемое значение: объект изображения или возвращаемое значение: URL изображения, в вашем случае возвращаемое значение может быть выбрано в качестве объекта изображения, а не URL изображения. Вот почему здесь с вашим кодом возвращается массив, а не только URL. Чтобы получить только URL изображения из этого массива, пожалуйста, напишите следующее изменение:

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

Попробуй это

        <?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().
     ?>
Другие вопросы по тегам