Ну смотрите если Вы делаете через записи, то используете цикл wp, в цикле получаете заголовок, картинку поста, а цену можно добавить через кастомные поля.
Как бы делал я:
1. Создал бы кастомный тип записей(например дома, или что там у вас) так как блог может потом нужно будет создать.
2. К этому посту добавил бы кастомные поля (цену, площадь и тд).
3. Выводил бы это все в цикле wp.
Если не хотите с кодекса, тогда можно заглянуть как сделано в стандартных темах wp с кробки
<?php
if ( have_posts() ) :
/* Start the Loop */
while ( have_posts() ) : the_post();
/*
* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( 'template-parts/post/content', get_post_format() );
endwhile;
the_posts_pagination( array(
'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
) );
else :
get_template_part( 'template-parts/post/content', 'none' );
endif;
?>