cnp / wp-highest-ancestor
A function for getting information about the highest ancestor of a post or term. Useful for section title information.
Requires
- php: >=5.3.3
This package is not auto-updated.
Last update: 2024-12-13 22:13:13 UTC
README
This function returns section information, which varies depending on the type of page you're viewing. Several conditional checks are combined into this one function so that you can get comprehensive section data form one function, rather than an exhaustive list of conditional statements.
It supports custom post type pages: e.g., if you have a CPT of "movies," creating a page with the slug of "movies" will return data from the page, rather than data from the post type object. This is useful for keeping complicated post type archive content in the CMS.
Parameters
check_for_page
: Whether to check for a page with a matching slug when on a post type/taxonomy archive/single. Will also perform the check for pages with a slug of 'search' and '404'. Default 'true'.
post_type_pages
: The function will default to the name of the post type for post type page checks, but you can manually override it with this parameter. Includes defaults for Search and 404.
Returns
$ancestor = array(
'id' => Ancestor ID,
'title' => Ancestor title,
'name' => Ancestor slug,
'object' => Ancestor post/term object,
'found_posts' => Conditional. Number of search results
);
Filters
You can adjust the output of this function by adding this filter: add_filter( 'cnp_get_highest_ancestor', 'custom_filter_title', 20, 1 )
. The accepted argument is the ancestor
variable. Return it in your filter function to alter the output.
Scenarios
Hierarchical post type (is_post_type_hierarchical)
Returns data about the highest ancestor of the current post. If the current post is a top-level post, then the current post data is returned.
Flat post type (else)
Returns data about the post type. Will check for a page with the same slug as the post type if $args['check\_for\_page']
is true, returns basic post type data otherwise.
Default home page (is_home && is_front_page)
Returns basic home page data.
Static Front Page (page_on_front)
Returns data based on the Front Page post object, which is defined in the Reading Settings.
Posts Page (page_for_posts)
Returns data based on the Posts Page, which is defined in the Reading Settings.
Taxonomy Terms (is_tax, is_category, is_tag)
Returns data based on the current taxonomy term.
Search Results (is_search)
Returns basic search results data.
404 Page (is_404)
Returns basic 404 page data.