Class: \Conifer\Post\Post (abstract)
High-level behavior for WP Posts, on top of TimberPost class
Visibility | Function |
---|---|
public static | add_admin_column(string $key, string $label, \callable $getValue=null)</strong> : void Add a custom column to the admin for the given post type, with content provided through a callback. display in the custom column for. If not given, the column will display the value of the meta field whose meta_key is equal to $key . a given post. Takes a post ID as its sole parameter. |
public static | add_admin_filter(\string $name, array $options=array(), \callable $queryModifier=null)</strong> : void Add a custom filter to the admin for the given post type, with custom query behavior provided through a callback. Optional for defining taxonomy filters. If $name is a taxonomy, $options defaults to all non-empty terms in the taxonomy, plus an "Any $name" option. at query time. Callback params: WP_Query $query the query being executed string $value the filter value selected by the admin user The $queryModifier param is optional for cases such as querying by taxonomy term, in which case WP adds the term to the query automatically. |
public static | add_taxonomy_admin_filter(\string $tax)</strong> : void Add a custom admin filter for a taxonomy. |
public static | configure_advanced_search(array $config)</strong> : void |
public static | count_statuses_toward_term_count(\Timber\Term $term, array $statuses)</strong> : void Keep term counts up to date, taking into account posts in $status |
public static | create(array $data)</strong> : \Project\Post Create a new post from an array of data tables. The following keys are special, and their corresponding values will end up in the wp_posts table: post_author post_date post_date_gmt post_content post_content_filtered post_title post_excerpt post_status comment_status ping_status post_password post_name to_ping pinged post_modified post_modified_gmt post_parent menu_order post_mime_type guid post_category tags_input tax_input The keys "ID" and "post_type" are blacklisted and will be ignored. The value for "ID" is generated on post creation by WordPress/MySQL; The value for "post_type" will always come from $this->get_post_type(). All others key/value pairs are considered metadata and end up in wp_postmeta. |
public static | exists(int $id)</strong> : boolean true if the post exists, false otherwise Check whether a post by the given ID exists |
public static | get_all(array/array/string/array $query=array())</strong> : array an array of all matching post objects Get all the posts matching the given query (defaults to the current/global WP query constraints) |
public static | get_all_grouped_by_term(\string $taxonomy, array $terms=array(), array $postQueryArgs=array())</strong> : array an array like: php [ [ 'term' => { Category 1 WP_Term object }, 'posts' => [...], [ 'term' => { Category 2 WP_Term object }, 'posts' => [...], ] Get all published posts of this type, grouped by terms of $taxonomy e.g. "category" in the array can be any of the following: a term ID (int or numeric string) a term slug (string) a WP_Term object a Timber\Term object Defaults to all terms within $taxonomy. array passed to get_all() . Defaults to an empty array. |
public static | get_blog_url() : string the URL Get the URL of the blog landing page (what WP calls the "post archive" page) |
public | get_related_by_category(\integer $postCount=3)</strong> : Post[] an array of Post objects Get related Posts of the same post type, who share categories with this Post. |
public | get_related_by_tag(\integer $postCount=3)</strong> : Post[] an array of Post objects Get related Posts of the same post type, who share tags with this Post. |
public | get_related_by_taxonomy(\string $taxonomy, \integer $postCount=3)</strong> : Post[] an array of Post objects Get related Posts of the same post type, who share terms in $taxonomy with this Post. |
public static | latest(\integer $count=3)</strong> : void Get the latest posts |
public static | register_taxonomy(\string $name, array $options=array(), \boolean $omitPostType=false)</strong> : void Register a taxonomy for this post type |
public static | register_type() : void Register this post type given the high-level label options. |
public | type() : void Place tighter restrictions on post types than Timber, forcing all concrete subclasses to implement this method. |
public static | type_options() : array Default implementation of custom post type labels, for use in register_post_type(). |
protected static | _post_type() : string Child classes must declare their own post types |
protected static | allow_custom_filtering() : void Whether to show the custom filter on the edit screen for the given post type. |
protected static | get_taxonomy_label(\string $tax)</strong> : string the singular label Get the singular_name label for a taxonomy |
protected static | querying_by_custom_filter(\string $name, \WP_Query $query)</strong> : void Whether the user is currently trying to query by the custom filter, according to GET params and the current post type; determines whether the current WP_Query needs to be modified. name attribute |
protected static | render_custom_filter_select(array $data)</strong> : void Render the |
Examples of Post::register_taxonomy()
```php
Post::register_taxonomy('sign', [
'plural_label' => 'Signs',
'labels' => [
'add_new_item' => 'Divine New Sign'
]
]);
// equivalent to:
register_taxonomy('sign', 'person', [
'labels' => [
'name' => 'Signs',
'singular_name' => 'Sign', // inferred from taxonomy name
'add_new_item' => 'Divine New Sign', // overridden directly w/ labels.add_new_item
'menu_naem' => 'View Signs' // inferred from plural_label
// ... other singular/plural labels are inferred in the same way
]
]);
no spaces.
plus an optional "plural_label" index. It produces a more comprehensive
array of labels before passing it to register_taxonomy()
.
If true, passes null
as the $object_type
argument to
register_taxonomy()
, which is useful for declaring taxonomies across
post types. Defaults to false
.
###### Examples of Post::register_type()
Post::register_type('person', [
'plural_label' => 'People',
'labels' => [
'add_new_item' => 'Onboard New Person'
],
]);
// equivalent to:
register_post_type('person', [
'label' => 'Person', // inferred from post_type,
'labels' => [
'singular_name' => 'Person', // inferred from post_type
'add_new_item' => 'Onboard New Person', // overridden directly w/ labels.add_new_item
'view_items' => 'View People', // inferred from plural_label
// ... other singular/plural labels are inferred in the same way
],
]);
plus an optional "plural_label" index. It produces a more comprehensive
array of labels before passing it to register_post_type()
.
```
This class extends \Timber\Post
This class implements \Timber\CoreInterface