Как получить URL-адреса избранных изображений из сообщений с пользовательскими таксономиями?

#php #wordpress

#php #wordpress

Вопрос:

Я просмотрел этот пост и скопировал некоторый код, который немного помог (страница больше не полностью пуста)

Я пытаюсь получить два URL-адреса: URL-адрес полноразмерного изображения и уменьшенную версию

Из каждого сообщения с определенным «полем» из созданной мной пользовательской таксономии (я создал таксономию «art-type», и есть 3 варианта: рисование, печать и цифровой)

Это код, который я написал до сих пор:

         <?php 
        $args = array(
        'post_type' => 'art-piece', /* custom post type */
        'taxonomy' => 'art-type', /* custom taxonomy */
        'field' => 'slug',
        'terms' => array('digital')
        ); 

        $gallery = get_posts ($args);
        ?>


            <div class="zoom-gallery">
                <div class="gallery-item">

                <?php if (has_post_thumbnail( $post->ID ) ): ?>
                <?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?>

                <img src="<?php echo $url ?>" />

                <?php endif; ?>                                  
                </div>
            </div>
  

Из того, что я вижу, в цикле нет ничего, что использовало бы какие-либо из указанных мной аргументов $. Теоретически это должно захватывать все избранные изображения независимо от типа сообщения, таксономии и т. Д., Но они мне вообще не подходят. Страница просто полностью пуста

Ответ №1:

Мне кажется, что вы не просматриваете результаты вызова get_posts(). Попробуйте изменить код, чтобы он соответствовал обновленному коду, который я опубликовал ниже.

Что он делает, так это перебирает каждое «сообщение», хранящееся в $gallery переменной.

Приносим извинения за то, что у вас недостаточно времени для более подробного объяснения, однако я вернусь и расскажу подробнее, если это сработает для вас.

 <?php 
    $args = array(
        'post_type' => 'art-piece', /* custom post type */
        'tax_query' => array(
            array(
                'taxonomy' => 'art-type', /* custom taxonomy */
                'field' => 'slug',
                'terms' => array('digital')
            ),
        ),
    ); 

    $gallery = get_posts($args); // removed space between function name and opening bracket
    foreach ( $gallery as $post ) : setup_postdata( $post ); // added this loop
    ?>


        <div class="zoom-gallery">
            <div class="gallery-item">

            <?php if (has_post_thumbnail( $post->ID ) ): ?>
            <?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?>

            <img src="<?php echo $url ?>" />

            <?php endif; ?>                                  
            </div>
        </div>
    <?php endforeach; // ending the loop
    wp_reset_postdata(); // reset $post so we don't interfere with the main WP_Query 
    ?>
  

Комментарии:

1. Да! Это сработало отлично. Я добавил еще одну строку, потому что мне нужно, чтобы захватить большую версию изображения так же я добавил <?php $largeurl = wp_get_attachment_url( get_post_thumbnail_id($post->Удостоверение личности), ‘полный’ ); ?> чтобы захватить большие изображения, и каждая вещь хорошо

2. Мой друг также обнаружил ошибку в аргументах $, которые я должен был написать ‘tax_query’, а затем поместить ‘taxonomy’ => ‘art-type’, /* пользовательская таксономия */ ‘field’ => ‘slug’, ‘terms’ => array (‘digital’) вмассив