Отображение всех данных из пользовательских полей типа записей через расширенные пользовательские поля
Я просмотрел весь 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().
?>