View API
Make uses “views” to determine which layout settings to apply to a given page load.
A view definition consists of a view ID that corresponds to an array of properties. The required properties for a view are a label and a callback function that determines whether it qualifies to be the current view. A third, optional property is priority, which determines which view will take precedent when the current view qualifies for multiple views. A higher priority will take precedent over a lower.
Example: Add views for a “tea” custom post type
function childtheme_add_tea_views() { make_update_view_definition( 'tea', array( 'label' => __( 'Tea', 'make-child' ), 'callback' => 'childtheme_is_tea', 'priority' => 20 ) ); make_update_view_definition( 'tea-menu', array( 'label' => __( 'Tea Menu', 'make-child' ), 'callback' => 'childtheme_is_tea_menu', 'priority' => 20 ) ); } add_action( 'make_view_loaded', 'childtheme_add_tea_views' );
In the above example, the make_update_view_definition()
function takes two parameters. The first is a unique ID for the view. The second is an associative array of view properties. The required properties are a public label and a callback function that determines whether it qualifies to be the current view. A third, optional property is priority, which determines which view will take precedent when the current view qualifies for multiple views. A higher priority will take precedent over a lower.
The callback functions from the above example might look something like this:
function childtheme_is_tea() { return is_singular( 'tea' ); } function childtheme_is_tea_menu() { return is_post_type_archive( 'tea' ); }