| |
| <?php
|
| <?php get_header(); ?>
|
| <h1 style="font-size: 24px; text-align: center; margin: 40px 0;">Property Listings</h1>
|
|
|
| <style>
|
| .listing-archive {
|
| display: grid;
|
| grid-template-columns: repeat(8, 1fr);
|
| gap: 20px;
|
| justify-items: center;
|
| padding: 40px 20px;
|
| width: 100%;
|
| max-width: 1000px;
|
| margin: 0 auto;
|
| }
|
| .listing-card {
|
| width: 100%;
|
| background:
|
| border: 1px solid
|
| border-radius: 10px;
|
| padding: 15px;
|
| box-shadow: 0 2px 6px rgba(0,0,0,0.1);
|
| font-family: inherit;
|
| position: relative;
|
| transition: transform 0.3s;
|
| }
|
| .listing-card:hover {
|
| transform: translateY(-5px);
|
| }
|
| .listing-card img {
|
| width: 100%;
|
| height: 180px;
|
| object-fit: cover;
|
| border-radius: 6px;
|
| }
|
| .listing-card h2 {
|
| font-size: 16px;
|
| margin: 12px 0 8px;
|
| }
|
| .listing-card a {
|
| text-decoration: none !important;
|
| color: inherit !important;
|
| }
|
| .listing-meta {
|
| font-size: 14px;
|
| line-height: 1.8;
|
| color:
|
| }
|
| .listing-line {
|
| display: flex;
|
| gap: 4px;
|
| }
|
| .label {
|
| display: inline-block;
|
| width: 100px;
|
| font-weight: bold;
|
| }
|
| .favorite-toggle {
|
| font-size: 22px;
|
| background: none;
|
| border: none;
|
| cursor: pointer;
|
| color:
|
| padding: 0;
|
| position: absolute;
|
| top: 10px;
|
| right: 10px;
|
| line-height: 1;
|
| }
|
| .favorite-toggle.favorited {
|
| color:
|
| }
|
| .favorite-toggle:hover {
|
| color:
|
| }
|
| @media screen and (max-width: 768px) {
|
| .listing-archive {
|
| grid-template-columns: 1fr;
|
| }
|
| }
|
| </style>
|
|
|
| <div class="listing-archive">
|
| <?php
|
| $args = array(
|
| 'post_type' => 'listings',
|
| 'posts_per_page' => -1,
|
| 'orderby' => 'date',
|
| 'order' => 'DESC'
|
| );
|
| $listings = new WP_Query($args);
|
| if ($listings->have_posts()) :
|
| while ($listings->have_posts()) : $listings->the_post();
|
| $post_id = get_the_ID();
|
| $user_id = get_current_user_id();
|
| $favorites = is_user_logged_in() ? get_user_meta($user_id, 'favorite_listings', true) : array();
|
| $is_favorited = is_array($favorites) && in_array($post_id, $favorites);
|
| ?>
|
| <div class="listing-card">
|
| <button class="favorite-toggle<?php if ($is_favorited) echo ' favorited'; ?>" data-post-id="<?php echo esc_attr($post_id); ?>">
|
| <?php echo $is_favorited ? '❤️' : '♡'; ?>
|
| </button>
|
|
|
| <a href="<?php the_permalink(); ?>">
|
| <h2><?php the_title(); ?></h2>
|
| </a>
|
|
|
| <a href="<?php the_permalink(); ?>">
|
| <?php
|
| if (has_post_thumbnail()) {
|
| the_post_thumbnail('medium');
|
| } else {
|
| $gallery = get_post_meta($post_id, 'gallery_images', true);
|
| if (is_array($gallery) && !empty($gallery)) {
|
| $image_url = wp_get_attachment_url($gallery[0]);
|
| echo '<img src="' . esc_url($image_url) . '" alt="Gallery Image">';
|
| } else {
|
| echo '<img src="https://via.placeholder.com/300x200?text=No+Image" alt="No Image">';
|
| }
|
| }
|
| ?>
|
| </a>
|
|
|
| <div class="listing-meta">
|
| <div class="listing-line"><span class="label">Price:</span> ¥<?php echo number_format((int)get_post_meta($post_id, 'price', true)); ?></div>
|
| <div class="listing-line"><span class="label">Area:</span> <?php echo esc_html(get_post_meta($post_id, 'area', true)); ?>m2</div>
|
| <div class="listing-line"><span class="label">Year Built:</span> <?php echo esc_html(get_post_meta($post_id, 'built', true)); ?></div>
|
| <div class="listing-line"><span class="label">Location:</span> <?php echo esc_html(get_post_meta($post_id, 'location', true)); ?></div>
|
| <div class="listing-line" style="font-size:13px; color:#777;">
|
| <span class="label">Posted:</span> <?php echo get_the_date('d/M/Y'); ?>
|
| </div>
|
| </div>
|
| </div>
|
| <?php endwhile; wp_reset_postdata(); endif; ?>
|
| </div>
|
|
|
| <?php get_footer(); ?>
|
| |
| |
Comments