The Site Object
Calling the site()
function in any of your theme’s php files will return the ofc/Site
object, a class with a collection of convenient methods to interface with various parts of WordPress.
Patterns
Post Querying
Developers familiar with the WordPress' WP_Query concept of querying for posts will feel right at home with RAD Theme Engine.
If you want to quickly fetch 8 posts of type “product”, for example:
$products = site()->getPosts([ "post_type" => "product", "numberposts" => 8]);
But unlike a normal WP_Query, RAD Theme Engine comes with an additional option to make working with taxonomies easier. Now if I want to grab products that have the “medium” taxonomy equal to the term with slug “vinyl”, I would simply use:
$records = site()->getPosts([ "post_type" => "product", "taxonomy.medium" => "vinyl" "numberposts" => 8,]);
Additionally a number of aliases for commonly used fields are added by RAD Theme Engine, which are defined in the getPosts
docs.
Post Fields
One convenient feature of RAD Theme Engine is the ability to define the structure of a returned post object on certain methods.
In practice this simply means creating a string array of WP_Post
members you want returned. For example, if I only want to get the $post_title
and $post_author
of a post, my fields would look like this:
$fields = ['post_title','post_author']; // Get these fields from post with id 4 $post = site()->getPost(4,$fields);
The result of getPost is the following:
[ "post_title" => "My Blog Post", "post_author" => "Escher"]
Additional Fields
In addition to any member of the WP_Post
object, RAD Theme Engine comes with a collection of shortcuts for nested properties, meta fields, Advanced Custom Fields, and taxonomies.
Check out this getPost
example to see some of these fields in action.
id
– Shortcut to return the$ID
.title
– Shortcut to return the$post_title
.name
– Shortcut to return the$post_title
.url
– Usesget_permalink($id)
to fetch the url of the post.permalink
– Same asurl
.thumbnail
– Usesget_the_post_thumbnail_url($id)
to get the post thumbnail.content
– Retrieves the content of the post.excerpt
– Retrieves the post excerpt, if enabled.meta.<key>
– Get the value of a specific post meta field.acf.<key>
– Get the value of a specific ACF field for this post.categories.<member1>,<member2>,...
– Get specific members of theWP_Term
for each category this post is a part of.taxonomy.<taxonomy>.<member1>,<member2>,...
– Get specific members of theWP_Term
for each term within the given taxonomy this post is a part of. See below for members:term_id
id
– Alias forterm_id
link
– The result ofget_term_link()
name
title
– Alias forname
slug
description
Putting it Together
Now that we know how to create a post query and define it’s structure, the logical next step would be to put them together! Luckily with RAD Theme Engine this is super simple, just use the getPosts
function with both parameters.
If I want to grab the title, url, and thumbnail for all the records I’m selling, for example:
$query = [ "post_type" => "product", "taxonomy.medium" => "vinyl"]; $fields = [ "title", "url", "thumbnail"]; $records = site()->getPosts($query,$fields);
Check out the getPosts
docs for more information.