0

Я просмотрел весь 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(); ?> 
+0

Вы пытались изменить get_ID на $ post-> ID? что-то вроде этого ID, 'custom_field_name', true); echo $ variable;?> –

+0

Я пробовал то, что вы сказали @QuebrandoCabeca (я считаю), но, похоже, ничего не менял – ansarob

ответ

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(). 
    ?> 
+0

Пробовал, но я не замечаю никаких существенных отличий, чем мой код выше ... – ansarob

1

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

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

Это работает на страницу для одного конкретного адвоката, но не работает на этой странице, где я пытаюсь отобразить всех адвокатов. – ansarob

+0

BTW, у меня он установлен для объекта изображения – ansarob

+0

Не могли бы вы напечатать_r ($ photo); & ответ здесь, что он дает в качестве вывода? –

Смежные вопросы