PHP code example of pollen / query
1. Go to this page and download the library: Download pollen/query library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pollen / query example snippets
use Pollora\Query\PostQuery;
$results = PostQuery::select()
->postType('product')
->taxQuery(function (TaxQuery $query) {
$query->where(
$query
->taxonomy('category')
->contains(['tee-shirt', 'sportswear'])
->searchByTermSlug()
);
})
->dateQuery(function (DateQuery $query) {
$query->where(
$query
->date('posted_at')
->between('2021-01-01', '2022-02-01')
)->orWhere(
$query->date()->created()->after('2021-01-01')
);
})
->metaQuery(function (MetaQuery $query) {
$query
->where(
$query->meta('status')->equalTo('active')
)->orWhere(
$query->meta('highlighted')->equalTo(0)
);
})
->userPermission('readable')
->cacheResults()
->get();
new WP_Query([
'cache_results' => true,
'date_query' => [
'relation' => 'OR',
[
'column' => 'posted_at',
'before' =>
[
'year' => '2022',
'month' => '02',
'day' => '01',
],
'after' =>
[
'year' => '2021',
'month' => '01',
'day' => '01',
],
],
[
'column' => 'post_date',
'after' =>
[
'year' => '2021',
'month' => '01',
'day' => '01',
],
],
],
'fields' => 'all',
'meta_query' => [
'relation' => 'OR',
[
'key' => 'status',
'compare' => '=',
'value' => 'active',
],
[
'key' => 'highlighted',
'compare' => '=',
'type' => 'BINARY',
'value' => 0,
],
],
'perm' => 'readable',
'post_type' => 'product',
'tax_query' => [
'relation' => 'AND',
[
'taxonomy' => 'category',
'field' => 'slug',
'terms' =>
[
'tee-shirt',
'sportswear',
],
'operator' => 'IN',
'
PostQuery::select()->get(); // Equivalent to PostQuery::select('*')->get();
new WP_Query([
'fields' => 'all',
'post_type' => 'any',
]);
PostQuery::select('id=>parent')->get();
new WP_Query([
'fields' => 'id=>parent',
'post_type' => 'all',
]);
PostQuery::select('ids')->get();
new WP_Query([
'fields' => 'ids',
'post_type' => 'all',
]);
PostQuery::find(1) // you can also pass an array of post ids.
->fields('ids')
->get();
new WP_Query([
'p' => 1, // Retrieve the post with ID 1
'fields' => 'ids', // Retrieve only the post ID
'post_type' => 'all',
]);
PostQuery::select()
->author(1)
->get();
new WP_Query([
'author' => 1, // Retrieve posts authored by the user with ID 1
'post_type' => 'all' // Include all post types in the query
]);
PostQuery::select()
->authorName('taylor')
->get();
new WP_Query([
'author_name' => 'taylor', // Retrieve posts authored by the user with the username 'taylor'
'post_type' => 'all' // Include all post types in the query
]);
PostQuery::select()
->authorIn([1, 2, 3])
->get();
new WP_Query([
'author__in' => [1, 2, 3], // Retrieve posts authored by users with IDs 1, 2, or 3
'post_type' => 'all' // Include all post types in the query
]);
PostQuery::select()
->authorNotIn([1, 2, 3])
->get();
new WP_Query([
'author__not_in' => [1, 2, 3], // Exclude posts authored by users with IDs 1, 2, or 3
'post_type' => 'all' // Include all post types in the query
]);
PostQuery::select()
->cat(1)
->get();
new WP_Query([
'cat' => 1, // Retrieve posts from category with ID 1
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->categoryName('sales')
->get();
new WP_Query([
'category_name' => 'sales', // Retrieve posts from the 'sales' category
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->categoryIn([1, 2, 3])
->get();
new WP_Query([
'category__in' => [1, 2, 3], // Include posts from categories with IDs 1, 2, or 3
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->categoryNotIn([1, 2, 3])
->get();
new WP_Query([
'category__not_in' => [1, 2, 3], // Exclude posts from categories with IDs 1, 2, or 3
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tag('programming')
->get();
new WP_Query([
'tag' => 'programming', // Retrieve posts associated with the 'programming' tag
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tagId(1)
->get();
new WP_Query([
'tag_id' => 1, // Retrieve posts associated with the tag with ID 1
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tagAnd([1, 2])
->get();
new WP_Query([
'tag__and' => [1, 2], // Retrieve posts associated with both tags with IDs 1 and 2
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tagIn([3, 4])
->get();
new WP_Query([
'tag__in' => [3, 4], // Retrieve posts associated with tags with IDs 3 or 4
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tagNotIn([5, 6])
->get();
new WP_Query([
'tag__not_in' => [5, 6], // Exclude posts associated with tags with IDs 5 or 6
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tagSlugAnd(['dev', 'qa'])
->get();
new WP_Query([
'tag_slug__and' => ['dev', 'qa'], // Retrieve posts associated with both 'dev' and 'qa' tags
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->tagSlugIn(['frontend', 'backend'])
->get();
new WP_Query([
'tag_slug__in' => ['frontend', 'backend'], // Retrieve posts associated with 'frontend' or 'backend' tags
'post_type' => 'all', // Include all post types in the query
]);
PostQuery::select()
->taxQuery(function (TaxQuery $query) {
$query->where(
$query
->taxonomy('category')
->contains(['tee-shirt', 'sportswear'])
->searchByTermSlug()
);
})
->get();
new WP_Query([
'post_type' => 'all',
'tax_query' => [
'relation' => 'AND',
[
'taxonomy' => 'category',
'field' => 'slug',
'terms' => ['tee-shirt', 'sportswear'],
'operator' => 'IN',
'
PostQuery::select()
->taxQuery(function (TaxQuery $query) {
$query->where(
$query
->taxonomy('category')
->contains([10, 20])
->searchById()
)->orWhere(
$query
->taxonomy('event')
->contains(['black-friday', 'christmas-sales'])
->searchByTermSlug()
);
})
->get();
new WP_Query([
'post_type' => 'all',
'tax_query' => [
'relation' => 'OR',
[
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => [10, 20],
'operator' => 'IN',
'
PostQuery::select()
->taxQuery(function (TaxQuery $query) {
$query
->where(
$query->taxonomy('status')->notContains(['private'])
)
->orWhere(function (TaxQuery $query) {
$query
->where(
$query->taxonomy('attributes')->exists()
)
->orWhere(
$query->taxonomy('product_cat')->contains(['tee-shirt', 'sportswear'])
);
})
->orWhere(function (TaxQuery $query) {
$query
->where(
$query->taxonomy('promo_cat')->contains(['summer', 'blackfriday'])
)
->andWhere(
$query->taxonomy('new_products')->notExists()
);
});
})
->get();
new WP_Query([
'post_type' => 'all',
'tax_query' => [
'relation' => 'OR',
[
'taxonomy' => 'status',
'field' => 'term_id',
'terms' => [
'private',
],
'operator' => 'NOT IN',
' [
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => [
'tee-shirt',
'sportswear',
],
'operator' => 'IN',
'
'
PostQuery::select()
->search('my keyword')
->get();
new WP_Query([
's' => 'my keyword', // Perform a keyword-based search for posts containing 'my keyword'
'post_type' => 'all',
]);
PostQuery::select()
->postType('article')
->get();
new WP_Query([
'post_type' => 'article', // Retrieve posts of the 'article' post type
]);
PostQuery::select()
->postId(42)
->get();
new WP_Query([
'p' => 42, // Retrieve the post with ID 42
'post_type' => 'all'
]);
PostQuery::select()
->postSlug('mon-article')
->get();
new WP_Query([
'name' => 'mon-article', // Retrieve the post with the slug 'mon-article'
'post_type' => 'all'
]);
PostQuery::select()
->postParent(5)
->get();
new WP_Query([
'post_parent' => 5, // Retrieve posts with a parent post of ID 5
'post_type' => 'all',
]);
PostQuery::select()
->whereParentIn([1, 2, 3])
->get();
new WP_Query([
'post_parent__in' => [1, 2, 3], // Retrieve posts with parent post IDs in the array
'post_type' => 'all'
]);
PostQuery::select()
->whereParentNotIn([4, 5, 6])
->get();
new WP_Query([
'post_parent__not_in' => [4, 5, 6], // Exclude posts with parent post IDs in the array
'post_type' => 'all'
]);
PostQuery::select()
->whereIn([7, 8, 9])
->get();
new WP_Query([
'post__in' => [7, 8, 9], // Retrieve posts with IDs in the array
'post_type' => 'all'
]);
PostQuery::select()
->whereNotIn([10, 11, 12])
->get();
new WP_Query([
'post__not_in' => [10, 11, 12], // Exclude posts with IDs in the array
'post_type' => 'all'
]);
PostQuery::select()
->slugIn(['slug-1', 'slug-2'])
->get();
new WP_Query([
'post_name__in' => ['slug-1', 'slug-2'], // Retrieve posts with slugs in the array
'post_type' => 'all'
]);
PostQuery::select()
->postType('page')
->postSlug('my-page')
->get();
new WP_Query([
'post_type' => 'page', // Query for pages
'name' => 'my-page', // Specify the page slug
'post_type' => 'all'
]);
PostQuery::select()
->withPassword()
->get();
new WP_Query([
'has_password' => true, // Retrieve posts with password protection
'post_type' => 'all'
]);
PostQuery::select()
->withoutPassword()
->get();
new WP_Query([
'has_password' => false, // Exclude posts with password protection
'post_type' => 'all'
]);
PostQuery::select()
->withPassword('zxcvbn')
->get();
new WP_Query([
'post_password' => 'zxcvbn', // Retrieve posts with the specified post password
'post_type' => 'all'
]);
PostQuery::select()
->postStatus('publish')
->get();
new WP_Query([
'post_status' => 'publish', // Retrieve posts with the 'publish' status
'post_type' => 'all'
]);
PostQuery::select()
->commentCount(1)
->get();
new WP_Query([
'comment_count' => 1, // Retrieve posts with exactly 1 comment
]);
PostQuery::select()
->take(5)
->get();
new WP_Query([
'posts_per_page' => 5, // Retrieve 5 posts per page
]);
PostQuery::select()
->skip(5)
->get();
new WP_Query([
'offset' => 5, // Skip the first 5 posts in the query results
]);
PostQuery::select()
->noPaging()
->get();
new WP_Query([
'nopaging' => true, // Retrieve all posts without pagination
]);
PostQuery::select()
->postsPerArchivePage(5)
->get();
new WP_Query([
'posts_per_archive_page' => 5, // Display 5 posts per archive page
]);
PostQuery::select()
->page(666)
->get();
new WP_Query([
'page' => 666, // Retrieve results for page number 666
]);
PostQuery::select()
->ignoreStickyPosts()
->get();
new WP_Query([
'ignore_sticky_posts' => true, // Exclude sticky posts from the query
]);
PostQuery::select()
->orderBy('most_comments')
->orderBy('post_date', 'ASC')
->get();
new WP_Query([
'orderby' => [
'most_comments' => 'DESC', // Order by 'most_comments' in descending order
'post_date' => 'ASC', // Then order by 'post_date' in ascending order
],
]);
PostQuery::select()->dateQuery(function (DateQuery $query) {
$query
->where(
$query->date('edited_at')->before('2022-01-01')->after([
'year' => '2021',
'month' => '01',
'day' => '01',
])
)
->inclusive();
})->get();
new WP_Query([
'date_query' => [
'relation' => 'AND',
[
'column' => 'edited_at',
'before' => [
'year' => 2022,
'month' => 1,
'day' => 1,
'hour' => 12,
'minute' => 0,
'second' => 0,
],
'after' => [
'year' => 2021,
'month' => 1,
'day' => 1,
],
],
'inclusive' => true,
],
]);
$query->date('edited_at');
PostQuery::select()->metaQuery(function (MetaQuery $query) {
$query->where(
$query->meta('status')->equalTo('active')
);
})->get();
new WP_Query([
'meta_query' => [
'relation' => 'AND',
[
'key' => 'status',
'compare' => '=',
'type' => 'CHAR',
'value' => 'active',
],
],
]);
$query->meta('my_post_meta')->ofType('numeric'); // You can also use a number
$query->meta('my_post_meta')->equalTo('active'); // You can also use a number
$query->meta('my_post_meta')->notEqualTo('inactive');
php
$query->meta('my_post_meta')->between('2022-01-01', '2022-12-31');
php
$query->meta('my_post_meta')->notBetween('2022-01-01', '2022-12-31');
php
PostQuery::select()
->metaQuery(function (MetaQuery $query) {
$query
->where(
$query
->meta('menu_order')
->state('menu_order_state')
->greaterThan(10)
);
})
->orderBy('menu_order_state', 'ASC')
->get();
php
PostQuery::select()->metaQuery(function (MetaQuery $query) {
$query
->where(
$query->meta('status')->equalTo('active')
)
->orWhere(
$query->meta('highlighted')->equalTo(1)
);
})->get();
php
PostQuery::select()
->metaQuery(function (MetaQuery $query) {
$query
->where(
$query->meta('status')->equalTo('active')
)
->orWhere(function (MetaQuery $query) {
$query
->where(
$query->meta('_sku')->equalTo('H123456789')
)
->orWhere(
$query->meta('_sku')->equalTo('D123456784')
);
})
->orWhere(function (MetaQuery $query) {
$query
->where(
$query->meta('promo_cat')->notIn(['summer', 'blackfriday'])->state('promo_cat')
)
->andWhere(
$query->meta('promo_cat')->notEqualTo('sales')
);
})
->orWhere(
$query->meta('sale_date')
->between('2024-01-01', '2024-12-31')
);
})
->orderBy('promo_cat')
->get();
php
PostQuery::select()
->userPermission('readable')
->get();
php
new WP_Query([
'perm' => 'readable',
'post_type' => 'all',
]);
php
PostQuery::select()
->userPermission('editable')
->get();
php
new WP_Query([
'perm' => 'editable',
'post_type' => 'all',
]);
php
PostQuery::select()
->userPermission('invalid')
->get();
php
new WP_Query([
'post_type' => 'all',
]);
php
PostQuery::select()
->postMimeType('image/gif')
->get();
php
new WP_Query([
'post_mime_type' => 'image/gif',
'post_type' => 'all',
]);
php
PostQuery::select()
->postMimeType(['image/jpeg', 'image/gif', 'image/png', 'image/bmp', 'image/tiff', 'image/x-icon'])
->get();
php
PostQuery::select()
->cacheResults()
->get();
php
PostQuery::select()
->updateMetaCache(false)
->get();
php
new WP_Query([
'update_post_meta_cache' => false,
'post_type' => 'all',
]);
php
PostQuery::select()
->updateTermCache(true)
->get();
php
new WP_Query([
'update_post_term_cache' => true,
'post_type' => 'all',
]);