Skip to content

Instantly share code, notes, and snippets.

@enqtran
Last active May 5, 2017 04:14
Show Gist options
  • Save enqtran/97c0362936ab74719d909699f241551c to your computer and use it in GitHub Desktop.
Save enqtran/97c0362936ab74719d909699f241551c to your computer and use it in GitHub Desktop.
<?php
/**
* WordPress Query Reference
* CODEX: http://codex.wordpress.org/Class_Reference/WP_Query
*/
$args = array(
/**
* Author
*/
'author' => 1,2,3, // lấy dữ liệu theo author id
'author_name' => 'enqtran', // lấy dữ liệu theo tên author
/**
* Categories
*/
'cat' => 5, // lấy dữ liệu theo category id
'category_name' => 'staff', 'news', // lấy dữ liệu theo tên category
'category__and' => array( 2, 6 ), // lấy dữ liệu trong 1 mảng chứa id category
'category__in' => array( 2, 6 ), // lấy dữ liệu trong 1 mảng chứa id category
'category__not_in' => array( 2, 6 ), // lấy dữ liệu theo id category không có trong mảng
/**
* Tags
*/
'tag' => 'cooking', // lấy dữ liệu theo 1 tag slug
'tag_id' => 5, // lấy dữ liệu theo tag id
'tag__and' => array( 2, 6), // lấy dữ liệu theo nhiều tag id - mảng chứa id
'tag__in' => array( 2, 6), // lấy dữ liệu theo nhiều tag id - mảng chứa id
'tag__not_in' => array( 2, 6), // lấy dữ liệu không có tag id - mảng chứa id
'tag_slug__and' => array( 'red', 'blue'), // lấy dữ liệu theo nhiều tag slug - mảng chứa slug
'tag_slug__in' => array( 'red', 'blue'), // lấy dữ liệu theo nhiều tag slug - mảng chứa slug
/**
* Taxonomy query
*/
'tax_query' => array( // mảng các điều kiện query taxonomy
'relation' => 'AND', // quan hệ AND hoặc OR
array(
'taxonomy' => 'color', // Tên taxonomy
'field' => 'slug', // trường cần lấy trong table term
'terms' => array( 'red', 'blue' ), // giá trị so sánh
'include_children' => true, // mặc định là true
'operator' => 'IN' // quan hệ với giá trị so sánh ở trên -- 'IN', 'NOT IN', 'AND'.
),
array(
'taxonomy' => 'actor',
'field' => 'id',
'terms' => array( 103, 115, 206 ),
'include_children' => false,
'operator' => 'NOT IN'
)
),
/**
* Post & Page
*/
'p' => 1, // id post
'name' => 'hello-world', // slug của post
'page_id' => 1, // id page
'pagename' => 'sample-page', // page slug
'pagename' => 'contact_us/canada', // page child slug
'post_parent' => 1, // page id parent
'post__in' => array(1,2,3), // mảng id post cần lấy
'post__not_in' => array(1,2,3), // mảng id post ko cần lấy
/**
* PostType & Status
*/
'post_type' => array(
'any', // - all
'post', // - a post.
'page', // - a page.
'revision', // - a revision.
'attachment', // - a attachment.
'my-post-type', // - Custom Post Types (e.g. movies)
),
'post_status' => array(
'publish', // - a published post or page.
'pending', // - post is pending review.
'draft', // - a post in draft status.
'auto-draft', // - a newly created post, with no content.
'future', // - a post to publish in the future.
'private', // - not visible to users who are not logged in.
'inherit', // - a revision. see get_children.
'trash' // - post is in trashbin (available with Version 2.9).
),
'post_type' => 'any', // - retrieves any type except revisions and types with 'exclude_from_search' set to true.
'post_status' => 'any', // - retrieves any status except those from post types with 'exclude_from_search' set to true.
/**
* Limit
*/
'posts_per_page' => 10, // giới hạn số post lấy ra. không giới hạn: posts_per_page=> -1
'posts_per_archive_page' => 10, // giới hạn cho trang archive
'nopaging' => false, // hiển thị phân trang
'paged' => get_query_var('page'), // trang hiển thị hiện tại trong phân trang
/**
* Offset
*/
'offset' => 3, // hiển thị từ phần thứ 3
// Sắp xếp
'order' => 'DESC', //'ASC' - ascending order from lowest to highest values (1, 2, 3; a, b, c).
//'DESC' - descending order from highest to lowest values (3, 2, 1; c, b, a).
// field sắp xếp
'orderby' => 'date', // Defaults to 'date'.
//Possible Values://
//'none' - No order (available with Version 2.8).
//'ID' - Order by post id. Note the captialization.
//'author' - Order by author.
//'title' - Order by title.
//'date' - Order by date.
//'modified' - Order by last modified date.
//'parent' - Order by post/page parent id.
//'rand' - Random order.
//'comment_count' - Order by number of comments (available with Version 2.9).
//'menu_order' - Order by Page Order.
//'meta_value' - Note that a 'meta_key=keyname' must also be present in the query.
//'meta_value_num' - Order by numeric meta value (available with Version 2.8).
//'post__in' - post ID
'ignore_sticky_posts' => false, //(bool) - ignore sticky posts or not. Default value is false, don't ignore. Ignore/excludsticky posts being included at the beginning of posts returned, but the sticky post will still be returned in the natural order othat list of posts returned.
//NOTE: For more info on sticky post queries see: http://codex.wordpress.org/Class_Reference/WP_Query#Sticky_Post_Parameters
/**
* Time
*/
'year' => 2012, //(int) - 4 digit year (e.g. 2011).
'monthnum' => 3, //(int) - Month number (from 1 to 12).
'w' => 25, //(int) - Week of the year (from 0 to 53).
'day' => 17, //(int) - Day of the month (from 1 to 31).
'hour' => 13, //(int) - Hour (from 0 to 23).
'minute' => 19, //(int) - Minute (from 0 to 60).
'second' => 30, //(int) - Second (0 to 60).
/**
* Metabox - custom field
*/
'meta_key' => 'key', //(string) - Custom field key.
'meta_value' => 'value', //(string) - Custom field value.
'meta_value_num' => 10, //(number) - Custom field value.
'meta_compare' => '=', //(string) - Operator '!=', '>', '>=', '<', or ='. Default value is '='.
'meta_query' => array(
array(
'key' => 'color', //(string) - Custom field key.
'value' => 'blue', //(string/array) - support compare value of ( 'IN', 'NOT IN', 'BETWEEN', or 'NOT BETWEEN')
'type' => 'CHAR', //(string) - Custom field type. Possible values are 'NUMERIC', 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED', 'TIME', 'UNSIGNED'. Default value is 'CHAR'.
'compare' => '=', //(string) - Operator to test. Possible values are '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'. Default value is '='.
),
array(
'key' => 'price',
'value' => array( 1,200 ),
'compare' => 'NOT LIKE'
)
/**
* Capabiliti
*/
'perm' => 'readable' //(string) Possible values are 'readable', 'editable'
/**
* Cache
*/
'no_found_rows' => false, //(bool) Default is false.
'cache_results' => true, //(bool) Default is true
'update_post_term_cache' => true, //(bool) Default is true
'update_post_meta_cache' => true, //(bool) Default is true
/**
* Search
*/
's' => $s, // keyword
'exact' => true //(bool) - flag to make it only match whole titles/posts - Default value is false.
'sentence' => true //(bool) - flag to make it do a phrase search - Default value is false.
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
// Do Stuff
endwhile;
wp_reset_query();
endif;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment