Skip to main content

QueryUtil

QueryUtil is an utility class for executing validated and multi-site-aware queries using WP-Node’s query builders.


Description

  • Centralizes logic to build and execute validated queries.
  • Supports all core WordPress entities: posts, terms, users, comments, etc.
  • Allows custom query builders via .custom().
  • Multi-site compatible via .usingBlog() and .resetBlog().
  • Uses validators to strongly type results using Zod.

Usage

const context = await Application.getContext();
const posts = await context.utils.query.posts((query) => {
query.where("ID", 1);
});

Methods

usingBlog

usingBlog(id: number): this

Sets the blog ID to scope queries when in multisite mode.

resetBlog

resetBlog(): this

Resets blog scoping to default (unscoped).

custom

custom<C, T extends types.validating.Parser>(
clazz: types.Constructor<C>,
formatter: T,
func: (query: C, builders: QueryBuilders) => void
): Promise<types.validating.ParserReturnType<T> | undefined>

Executes a custom query builder and formatter.

posts

posts<T extends types.validating.Parser = typeof val.query.postsResult>(
func: (query: PostsQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the posts table.

terms

terms<T extends types.validating.Parser = typeof val.query.termsResult>(
func: (query: TermsQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the terms table.

comments

comments<T extends types.validating.Parser = typeof val.query.commentsResult>(
func: (query: CommentsQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the comments table.

users

users<T extends types.validating.Parser = typeof val.query.usersResult>(
func: (query: UsersQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the users table.

blogs

blogs<T extends types.validating.Parser = typeof val.query.blogsResult>(
func: (query: BlogsQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the blogs table.

sites

sites<T extends types.validating.Parser = typeof val.query.sitesResult>(
func: (query: SiteQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the site table.

options

options<T extends types.validating.Parser = typeof val.query.optionsResult>(
func: (query: OptionsQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on the options table.

meta

meta<Table extends types.MetaTable, T extends types.validating.Parser = ...>(
type: Table,
fn: (query: MetaQuery, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a meta query (e.g., postmeta, usermeta). Automatically selects the appropriate formatter.

common

common<
Table extends "signups" | "links" | "registration_log",
T extends types.validating.Parser = ...,
Query = CommonQuery<Table>
>(
table: Table,
fn: (query: Query, builders: QueryBuilders) => void,
formatter?: T
): Promise<types.validating.ParserReturnType<T> | undefined>

Builds and runs a query on a common table like signups, links, or registration_log.