Получить ID страницы в ACF - PullRequest
       8

Получить ID страницы в ACF

0 голосов
/ 28 августа 2018

У меня есть очень простой цикл, в котором я хочу отобразить несколько плакатов, и один раз щелкнул, чтобы показать всплывающее окно с соответствующим продуктом. Я создал это с пользовательским типом записи и со ссылкой на страницу ACF в качестве типа поля.

enter image description here

Теперь После создания этого поля ACF для моего пользовательского типа сообщения я могу выбрать нужный продукт (для которого мне понадобится идентификатор) в Metabox

enter image description here

Мой текущий цикл

    <ul class="products columns-5">
        <?php $args = array('post_type' => 'posters'); ?>
        <?php $loop = new WP_Query($args); ?>
        <?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
        <li class="product" style="width: 330px;">
           <div class="product-inner clearfix">
              <div class="mf-product-thumbnail">
                 <a href="<?php the_field('my_link'); ?>" data-id="<?php echo get_permalink($postID); ?>" class="mf-product-quick-view" tabindex="0"><img width="300" height="450" src="<?php echo get_the_post_thumbnail_url($post_id, 'full'); ?>" class="" alt=""></a>
              </div>
           </div>
        </li>
        <?php endwhile; ?>
        <?php else: ?>
        <?php endif; ?>
        <?php wp_reset_postdata(); ?>
    </ul>

Хотя ссылка href работает с использованием настраиваемого поля, проблема, которую я сейчас пытаюсь решить, состоит в том, чтобы получить фактический идентификатор продукта, так как, по-видимому, он необходим для работы с data-id . Я пытался добавить get_permalink ($ postID); однако это, кажется, не работает. Некоторые советы экспертов будут с благодарностью, спасибо.

1 Ответ

0 голосов
/ 28 августа 2018

Просто используйте текущий идентификатор элемента цикла (по умолчанию идентификатор объекта WordPress)
Код должен выглядеть так:

<ul class="products columns-5">
        <?php $args = array('post_type' => 'posters'); ?>
        <?php $loop = new WP_Query($args); ?>
        <?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); 
 $id = $loop->post->ID;
?>
        <li class="product" style="width: 330px;">
           <div class="product-inner clearfix">
              <div class="mf-product-thumbnail">
                 <a href="<?php the_field('my_link'); ?>" data-id="<?php echo $id; ?>" class="mf-product-quick-view" tabindex="0"><img width="300" height="450" src="<?php echo get_the_post_thumbnail_url($post_id, 'full'); ?>" class="" alt=""></a>
          </div>
       </div>
    </li>
    <?php endwhile; ?>
    <?php else: ?>
    <?php endif; ?>
    <?php wp_reset_postdata(); ?>
</ul>

ОБНОВЛЕНО:
Чтобы получить ссылку и идентификатор связанного товара, просто измените тип поля ACF на «Объект публикации», установите фильтр по типу публикации (для продукта -> тип публикации product) и установите тип возврата на «Опубликовать объект», после этого сделайте как ->

$linked_product = get_field('my_link');
$id = $linked_product->$post_id;
$link = $linked_product-> (i dont know what object returned exactly just do "var_dump($linked_product)" to chek what is inside).

И после этого изменить href и data-id атрибутированного контента ACF field settings

...