Creating models
If you are developing a custom HivePress extension, you may need to create a new model. To do this, create a new class-{model-name}.php
file (use lowercase letters, numbers, and hyphens only) in the includes/models
extension subdirectory and HivePress will load it automatically.
Then, define the model PHP class. The class name should be based on the file name but with underscores instead of hyphens and no lowercase restriction (e.g. Foo_Bar
class for the class-foo-bar.php
file). Pick a name that is unique enough to avoid conflicts with other HivePress models.
The code example above implements a Foo_Bar
model based on the Post
model. This means that the Foo_Bar
objects are stored as posts of a custom hp_foo_bar
type (the same hp_
prefix is used for comment types and taxonomies). A model class can be based on one of the base classes or any other model class. The following base classes are available:
Post - for models based on a custom post type (e.g.
Listing
);Term - for models based on a custom taxonomy (e.g.
Listing_Category
);Comment - for models based on a custom comment type (e.g.
Review
).
If your model inherits the Post
class, you must register the hp_{model_name}
post type separately, either via the WordPress API or HivePress configuration. Similarly, if your model inherits the Term
class, you must register a taxonomy.
The Foo_Bar
model has a single required description
field mapped to the standard post_content
field (so the value will be stored in the post_content
column of the wp_posts
database table). Also, there's a get_short_description
method used as a helper for getting the short description limited to 123 characters.
In the same way, you can create custom models for your HivePress extension.
Last updated