tainacan/docs/repository-items.md

4.8 KiB

Items Repository

Main Methods

These are the most used methods of this repository. For a complete list see the repository file.

fetch()

fetch items based on ID or WP_Query args

Items are stored as posts. Check WP_Query docs to learn all args accepted in the $args parameter (@see https://developer.wordpress.org/reference/classes/wp_query/) You can also use a mapped property, such as name and description, as an argument and it will be mapped to the appropriate WP_Query argument

If a number is passed to $args, it will return a \Tainacan\Entities\Item object. But if the post is not found or does not match the entity post type, it will return an empty array

The second paramater specifies from which collections item should be fetched. You can pass the Collection ID or object, or an Array of IDs or collection objects

@param array $args WP_Query args || int $args the item id @param array $collections Array Entities\Collection || Array int collections IDs || int collection id || Entities\Collection collection object @param string $output The desired output format (@see \Tainacan\Repositories\Repository::fetch_output() for possible values)

@return \WP_Query|Array|Item an instance of wp query OR array of entities OR a Item;

fetch_one()

Fetch one Entity based on query args.

Note: Does not work with Item_Metadata Repository

@param array $args Query Args as expected by fetch

@return false|\Tainacan\Entities The entity or false if none was found

fetch_ids()

fetch items IDs based on WP_Query args

to learn all args accepted in the $args parameter (@see https://developer.wordpress.org/reference/classes/wp_query/) You can also use a mapped property, such as name and description, as an argument and it will be mapped to the appropriate WP_Query argument

The second paramater specifies from which collections item should be fetched. You can pass the Collection ID or object, or an Array of IDs or collection objects

@param array $args WP_Query args || int $args the item id @param array $collections Array Entities\Collection || Array int collections IDs || int collection id || Entities\Collection collection object

@return Array array of IDs;

get_thumbnail_id_from_document()

Get a default thumbnail ID from the item document.

@param Entities\Item $item The item

@return int|null The thumbnail ID or null if it was not possible to find a thumbnail

insert()

update()

delete()

@param $item_id

@return mixed|Item

trash()

@param $item_id

@return mixed|Item

Usage

$repository = \Tainacan\Repositories\Items::get_instance();

Entity Properties

These are the Entity attributes for this repository. The Entity class is at classes/entities folder

Property Description Slug Getter Setter Stored as
Status The posts status status $entity->get_status() $entity->set_status() post_status
ID Unique identifier id $entity->get_id() $entity->set_id() ID
Title Title of the item title $entity->get_title() $entity->set_title() post_title
Description The item description description $entity->get_description() $entity->set_description() post_content
Collection The collection ID collection_id $entity->get_collection_id() $entity->set_collection_id() meta
Author The item author's user ID (numeric string) author_id $entity->get_author_id() $entity->set_author_id() post_author
Creation Date The item creation date creation_date $entity->get_creation_date() $entity->set_creation_date() post_date
Modification Date The item modification date modification_date $entity->get_modification_date() $entity->set_modification_date() post_modified
Term IDs The item term IDs terms $entity->get_terms() $entity->set_terms() terms
Document Type The document type, can be a local attachment, an external URL or a text document_type $entity->get_document_type() $entity->set_document_type() meta
Document The document itself. An ID in case of attachment, an URL in case of link or a text in the case of text. document $entity->get_document() $entity->set_document() meta
Thumbnail Squared reduced-size version of a picture that helps recognizing and organizing files _thumbnail_id $entity->get__thumbnail_id() $entity->set__thumbnail_id() meta
Comment Status Item comment status: "open" means comments are allowed, "closed" means comments are not allowed. comment_status $entity->get_comment_status() $entity->set_comment_status() comment_status

Entity usage

Create new

$entity = new \Tainacan\Entities\Item();

Get existing by ID

$repository = \Tainacan\Repositories\Items::get_instance();
$entity = $repository->fetch(12);
echo 'My ID is ' . $entity->get_id(); // 12