Tôi đã sử dụng cả WP_Query và get_posts. Trên một trong các mẫu thanh bên của tôi, tôi sử dụng vòng lặp sau đây để hiển thị các bài đăng từ một danh mục cụ thể bằng cách sử dụng các trường tùy chỉnh có khóa 'category_to_load' có chứa tên danh mục hoặc slug. Sự khác biệt thực sự đến trong việc thực hiện một trong hai phương pháp.
Phương pháp get_posts trông giống như vậy trong một số mẫu của tôi:
Trường hợp thực hiện WP_Query trông như thế này:
$blog_posts = new WP_Query('showposts=15');
while ($blog_posts->have_posts()) : $blog_posts->the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>" class="blog_post">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<span class="date"><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></span>
</div>
<div class="entry">
<?php the_content(); ?>
</div>
<p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
</div>
<?php endwhile; ?>
Sự khác biệt chính là rằng bạn không cần phải thiết lập lại biến $ post toàn cục và bạn cũng không phải thiết lập dữ liệu bài đăng bằng cách gọi setup_postdata ($ post) trên mỗi đối tượng bài đăng khi bạn sử dụng WP_query. Bạn cũng có thể sử dụng hàm has_posts() đáng yêu trên hàm WP_Query, mà không có sẵn bằng cách sử dụng get_posts().
Bạn không nên sử dụng hàm query_posts() trừ khi bạn thực sự có ý nghĩa bởi vì nó sửa đổi vòng lặp chính cho trang. Xem docs. Vì vậy, nếu bạn đang xây dựng một trang đặc biệt để hiển thị blog của mình, thì việc gọi query_posts có thể làm hỏng vòng lặp của trang, vì vậy bạn nên sử dụng WP_Query.
Đó chỉ là hai xu của tôi. Đề xuất cuối cùng của tôi, lựa chọn đầu tiên của bạn nên là WP_Query.
-Chris
Nguồn
2009-02-21 17:33:34
Làm thế nào bạn sẽ truy cập vào bài trẻ em (file đính kèm, sửa đổi vv). Đây có phải là một truy vấn riêng biệt không? – meleyal
bạn có thể sử dụng hàm get_children(): http://codex.wordpress.org/Function_Reference/get_children. HOẶC Bạn có thể sử dụng wp_list_pages - wp_list_pages ('title_li = & child_of ='. $ Post-> ID. '& Show_date = sửa đổi & date_format = $ date_format'); ?>: http://codex.wordpress.org/wp_list_pages nếu bạn muốn danh sách. -C –