Как правильно получить пост через wp_query?

Помогите пожалуйста как правильно получить посты через wp_query, а то я пытаюсь сделать, а у меня дальше Parse Erorr нечего не выходит

if( $query->have_posts('projects') ) :
        while( $query->have_posts() ): $query->the_post();
            echo '

            <article class="col project-card">
                <div class="project-outer">
                    <div class="project-image">
                        ' . get_the_post_thumbnail( get_the_ID(), "project-thumbnail" ); . '
                    </div>
                    <div class="project-text">
                        <h3>' . get_the_title(); . '</h3>
                        <div class="project-info">
                            <div class="project-square">
                                <div class="project-info-img">
                                    <img src="wp-content/themes/ecottage v2/img/info.svg" alt="">
                                </div>
                                <span>' . get_post_meta(get_the_ID(), '_k_area', true); . ' ?>м&#0178;</span>
                            </div>
                            <div class="project-square">
                                <div class="project-info-img">
                                    <img src="wp-content/themes/ecottage v2/img/bed.svg" alt="">
                                </div>
                                <span><?php the_field('bed-rooms');?>спальных</span>
                            </div>
                            <div class="project-price">
                                <?php $sale = get_field('project-sale');
                                if( $sale && in_array('checked', $sale) ) {
                                    ?>
                                    <p class="sale"><?php echo get_post_meta(get_the_ID(), '_k_price_max', true); ?>&euro;</p>
                                    <strong>от <?php the_field('project-price-1'); ?>&euro;</strong>
                                    <?php
                                }else{?>
                                    <strong><?php echo get_post_meta(get_the_ID(), '_k_price_max', true); ?>&euro;</strong>
                                <?php
                                }
                                ?>
                            </div>  
                        </div>
                    </div>
                    <a class="project-link" href="' . get_permalink( $query->post->ID ) . '">Подробнее</a>
                </div>
                
            </article>';
        endwhile;
        wp_reset_postdata();
    else :
        echo 'Записей не найдено';
    endif;

    die();
}
  • Вопрос задан
  • 57 просмотров
Решения вопроса 2
@Lord_Dantes
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
У вас ошибка парсинга из-за того, что вы внутри echo открываете/закрываете php теги, пишите условия. Так работать не будет. Или выводите html

while( $query->have_posts() ): $query->the_post(); ?>

	<article class="col project-card">

		<?php echo '<div class="project-image">' . get_the_post_thumbnail( get_the_ID(), "project-thumbnail" ); . '</div>'; ?>

	</article>


Или собирайте в переменную

$content = '';

$content .= '<article class="col project-card">';
	$content .= '<div class="project-image">' . get_the_post_thumbnail( get_the_ID(), "project-thumbnail" ); . '</div>';
	if ( $sale ) {
		$content .= '<p class="sale"></p>';
	}
$content .= '</article>';

echo $content;


the_field() работать тоже не будет, используйте get_field()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы