Tôi muốn tạo trang để lọc bài đăng dựa trên một số tiêu chí.Cho phép người dùng sắp xếp các bài đăng trong Wordpress
Tôi có thể làm việc với wp_query
và gửi bài đăng khá dễ dàng, vấn đề của tôi là tôi không thể tìm ra (cũng không tìm thấy câu trả lời trực tuyến về điều này, tin tôi đi) cách cho phép người dùng làm điều này.
Lấy ví dụ này, trả về các bài đăng theo thứ tự giá (giá trị meta trường tùy chỉnh) từ cao nhất đến thấp nhất với 33 bài đăng.
<?php
$featuredPosts = new WP_Query(array(
'posts_per_page' => 33,
'meta_key'=>'Price',
'orderby' => 'meta_value_num',
'order' => DESC
));
?>
<?php if ($featuredPosts->have_posts()) : ?>
<?php while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); ?>
<article <?php post_class('item-post block'); ?> id="post-<?php the_ID(); ?>">
<h2 class="price-title"><?php the_title(); ?> </h2>
</article> <!-- end div post -->
<?php endwhile; wp_reset_query(); ?>
<?php endif; ?>
Bây giờ, ngay cả sau khi đọc và googling, tôi sẽ bị nguyền rủa nếu tôi biết cách triển khai điều này ở mặt trước để người dùng lọc bài đăng.
Ý tôi là, tôi biết bạn có thể thêm vào URL trong Wordpress để thay đổi thứ tự các bài đăng, nhưng trong ngữ cảnh này, tôi hoàn toàn bị mất.
Tôi đã thử cách này nhưng không hoạt động.
<?php
$by_price = esc_url(add_query_arg(array(
'meta_key' => 'price',
'orderby' => 'meta_value_num',
'order' => ASC
)));
$by_date = esc_url(add_query_arg(array(
'orderby' => 'date',
'order' => DESC
)));
?>
<ul>
<li><a href="<?php echo $by_price;?>">Order by price</a></li>
<li><a href="<?php echo $by_date;?>">Order by date</a></li>
</ul>
Những gì tôi đang cố gắng để đạt được là thực sự khá đơn giản là tốt, cho phép người dùng chọn thể loại, chọn phạm vi giá (đoán tôi muốn viết một cái gì đó trong JQuery để cung cấp một giá trị vào một lĩnh vực), thiết lập số lượng kết quả mà họ muốn được trả lại.
Tôi đã thử googling mọi thứ dưới ánh mặt trời Tôi có thể nghĩ về điều này, không có súc sắc.
Phần thứ hai có cần nằm trong vòng lặp không? – andy
Không, không phải trong vòng lặp – Zac
Trừ khi tôi đặt phần thứ hai bên trong vòng lặp từ phần đầu tiên nó không bao giờ xuất hiện trên trang. – andy