Trang Chủ   Vn+ TiVi   Fanpage Twitter  Fanpage FaceBook
Loading
                                         

Bản Tin Câu Lạc Bộ Pa Tin Im-Pod                                                                          
Diễn đàn Vn+
Tiêu Điểm

Tình Yêu - Giới Tính

1001 Bí Ẩn

Tổng hợp phần mềm

Ebook

Thủ Thuật IT

Thủ Thuật Blog

Video Clip

Lạ & Fun


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Sọ đầu lâu

Sọ đầu lâu
Moderator
Moderator
Chắc các bạn hay nghịch với giao diện WordPress không ít thì nhiều đã có lần dùng tới query_posts() để lấy được bài viết mình cần. Trong các trường hợp đơn giản quey_posts() đáp ứng đủ nhu cầu của người lập trình; trong những trường hợp phức tạp hơn, các bạn thể sử dụng các hook trong WP_Query::get_posts() để thay đổi trực tiếp truy vấn SQL trước khi WordPress gửi truy vấn tới MySQL.

Dưới đây là một ví dụ với các hook đơn giản, thường được sử dụng.

Ví dụ dưới đây giúp bạn lấy những bài viết có meta_key là “state” với giá trị là “beta” hoặc “stable”

Code:
// Hook vào 'pre_get_posts' để thay đổi truy vấn MySQL
 
add_action('pre_get_posts', array('Query_Modifier', '_pre_query_posts'));
 
class Query_Modifier
{
 
public static function _pre_query_posts() {
 
add_filter('posts_where', array('Query_Modifier', 'posts_where'), 1, 2);
add_filter('posts_join', array('Query_Modifier', 'posts_join'),1, 2);
/*
add_filter('posts_where_paged', array('Query_Modifier', 'posts_where_paged'),1, 2);
add_filter('posts_groupby', array('Query_Modifier', 'posts_groupby'),1, 2);
add_filter('posts_join_paged', array('Query_Modifier', 'posts_join_paged'),1, 2);
add_filter('posts_orderby', array('Query_Modifier', 'posts_orderby'),1, 2);
add_filter('posts_distinct', array('Query_Modifier', 'posts_distinct'),1, 2);
add_filter('post_limits', array('Query_Modifier', 'posts_limits'),1, 2);
add_filter('posts_fields', array('Query_Modifier', 'posts_fields'),1, 2);
*/
}
 
public static function posts_where($where='', $wp_query=null) {
 
// Lấy bài có meta_key 'state' với giá trị là "beta" hoặc "stable"
// Bạn không nên sử dụng "$where ="  để xóa giá trị biến $where
 
$where .= " AND meta_value IN ('beta', 'stable') ";
 
return $where;
 
}
 
public static function posts_join($join='', $wp_query=null) {
 
global $wpdb;
 
// Lấy bài có meta_key 'state'
 
$join .= " LEFT JOIN " . $wpdb->prefix . "postmeta ON (" . $wpdb->posts . ".ID = " . $wpdb->prefix . "postmeta.post_id AND " . $wpdb->prefix . "postmeta.meta_key='state')";
 
return $join;
 
}
 
}

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 

Legend :  [ Vn-plus Founder ] [ Administrator ] [ Super Moderator ] [ Moderator ] [ Member ] [ VIP member ] [ banned ]



Free Auto Backlink Exchange ServiceFree Backlink Exchange For SeoVietnam BacklinksTravel BacklinksFree BacklinksText Backlink ExchangesText Back Link ExchangeFlorists LinksOverShopping Link ExchangeFree Automatic LinkWeb Link Exchange - Linkcsere

    Diễn Đàn Vn-Plus.Org | Thống kê | Liên hệ | Báo cáo lạm dụng  | Bạn muốn quảng cáo | Lên Đầu Trang

    Powered by: PHPBB2. Copyright © 2011  Diễn Đàn Mở VN+
    Contact: Vn-plus Founder . Yahoo: Nobita_xuka_ccy. Địa chỉ: Từ Tây - Yên Phú - Yên Mỹ - Hưng Yên
    BQT không chịu trách nhiệm bất cứ nội dung nào của thành viên đăng tải

Liên Kết Vớivn+

Create a forum on Forumotion | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất