iborisbelov
@iborisbelov
Веб-дизайнер, UX\UI

Как вывести ссылку и картинку на товар?

приветствую

Нужен ответ на данный вопрос. Как правильно вывести ссылку и картинку исходя из кода?

<?php foreach ($category_posts as $cat_post):?>
            <li class="product">
    <a href="<?php echo get_post_permalink(); ?>">
        <h3><?=$cat_post->post_title?></h3>
        <div class="image">
            <?php $image = get_field('custom_image_incategory'); ?>
            <?php if ( $image ) { ?>
                <a href="<?php echo get_permalink( get_the_ID() ) ?>"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></a>
            <?php } ?>
        </div>
 <?php do_action( 'woocommerce_after_shop_loop_item_title' );  ?>
    </a>
    <p><?=$cat_post->post_excerpt?></p>
</li>
        <?php endforeach;?>


Из этого года правильно выводится только <?=$cat_post->post_title?> и <?=$cat_post->post_excerpt?>

Это<?php echo get_post_permalink(); ?> и get_field('custom_image_incategory');

не работают
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
irtek
@irtek
Wordpress-addicted
<?php echo get_post_permalink(); ?>

заменить на

<?php echo get_permalink( $cat_post->ID ); ?>

Этот блок

<?php $image = get_field('custom_image_incategory'); ?>
            <?php if ( $image ) { ?>
                <a href="<?php echo get_permalink( get_the_ID() ) ?>"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></a>
            <?php } ?>


заменить на

<?php $image = get_field( 'custom_image_incategory', $cat_post->ID ); ?>
            <?php if ( $image ) { ?>
                <a href="<?php echo get_permalink( $cat_post->ID ) ?>"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></a>
            <?php } ?>


Поясню.
get_the_ID() - функция не подходит, т.к. вы находитесь за рамками основного цикла query_post WordPress.
Вы проходите командой foreach по вашему массиву объектов $category_posts
Соответственно дальше в коде для получения ID поста нужно использовать $cat_post->ID
Фукнция get_field(). это, вероятно, плагин Advanced Custom Fields. Этой функции также нужно передать ID поста т.к. она находится в рамках вашего цикла foreach. Добавляем вторым параметром также $cat_post->ID
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы