Astra_Breadcrumb_Trail::add_post_hierarchy( int $post_id )
Adds a specific post’s hierarchy to the items array. The hierarchy is determined by post type’s rewrite arguments and whether it has an archive page.
Description
Parameters
- $post_id
-
(int) (Required)
Return
(void)
Source
File: inc/addons/breadcrumbs/class-astra-breadcrumb-trail.php
protected function add_post_hierarchy( $post_id ) {
// Get the post type.
$post_type = get_post_type( $post_id );
$post_type_object = get_post_type_object( $post_type );
// If this is the 'post' post type, get the rewrite front items and map the rewrite tags.
if ( 'post' === $post_type ) {
// Add $wp_rewrite->front to the trail.
$this->add_rewrite_front_items();
// Map the rewrite tags.
$this->map_rewrite_tags( $post_id, get_option( 'permalink_structure' ) );
}
// If the post type has rewrite rules.
elseif ( false !== $post_type_object->rewrite ) {
// If 'with_front' is true, add $wp_rewrite->front to the trail.
if ( $post_type_object->rewrite['with_front'] ) {
$this->add_rewrite_front_items();
}
// If there's a path, check for parents.
if ( ! empty( $post_type_object->rewrite['slug'] ) ) {
$this->add_path_parents( $post_type_object->rewrite['slug'] );
}
}
// If there's an archive page, add it to the trail.
if ( $post_type_object->has_archive ) {
// Add support for a non-standard label of 'archive_title' (special use case).
$label = ! empty( $post_type_object->labels->archive_title ) ? $post_type_object->labels->archive_title : $post_type_object->labels->name;
// Core filter hook.
$label = apply_filters( 'post_type_archive_title', $label, $post_type_object->name );
$this->items[] = sprintf( '<a href="%s">%s</a>', esc_url( get_post_type_archive_link( $post_type ) ), $label );
}
// Map the rewrite tags if there's a `%` in the slug.
if ( 'post' !== $post_type && ! empty( $post_type_object->rewrite['slug'] ) && false !== strpos( $post_type_object->rewrite['slug'], '%' ) ) {
$this->map_rewrite_tags( $post_id, $post_type_object->rewrite['slug'] );
}
}
Expand full source code Collapse full source code View on Trac
Changelog
| Version | Description |
|---|---|
| 1.0.0 | Introduced. |