get_render_attribute_string('breadcrumbs-parent') . '>';
echo '
get_render_attribute_string('breadcrumbs') . '>';
// Home page
if ('yes' === $settings['show_home']) {
$this->render_home_link();
}
if ($query->is_archive() && !$query->is_tax() && !$query->is_category() && !$query->is_tag()) {
echo '- ' . post_type_archive_title('', false) . '
';
} elseif ($query->is_archive() && $query->is_tax() && !$query->is_category() && !$query->is_tag()) {
// If post is a custom post type
$post_type = get_post_type();
// If it is a custom post type display name and link
if ('post' !== $post_type) {
$post_type_object = get_post_type_object($post_type);
$post_type_archive = get_post_type_archive_link($post_type);
$this->add_render_attribute(
array(
'breadcrumbs-item-cpt' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-custom-post-type-' . $post_type,
),
),
'breadcrumbs-item-cpt-crumb' => array(
'class' => array(
'htmega-breadcrumb-crumb-link',
'htmega-breadcrumb-crumb-custom-post-type-' . $post_type,
),
'href' => $post_type_archive,
'title' => $post_type_object->labels->name,
),
)
);
echo '- get_render_attribute_string('breadcrumbs-item-cpt') . '>get_render_attribute_string('breadcrumbs-item-cpt-crumb') . '>' . esc_html( $post_type_object->labels->name ) . '
';
$this->render_separator();
}
$this->add_render_attribute(
array(
'breadcrumbs-item-tax' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-current',
'htmega-breadcrumb-item-archive',
),
),
)
);
$custom_tax_name = get_queried_object()->name;
echo '- get_render_attribute_string('breadcrumbs-item-tax') . '>' . esc_html( $custom_tax_name ) . '
';
} elseif ($query->is_single()) {
$post_type = get_post_type();
if ('post' !== $post_type) {
$post_type_object = get_post_type_object($post_type);
$post_type_archive = get_post_type_archive_link($post_type);
$this->add_render_attribute(
array(
'breadcrumbs-item-cpt' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-custom-post-type-' . esc_attr( $post_type ),
),
),
'breadcrumbs-item-cpt-crumb' => array(
'class' => array(
'htmega-breadcrumb-crumb',
'htmega-breadcrumb-crumb-custom-post-type-' . esc_attr( $post_type ),
),
'href' => $post_type_archive,
'title' => $post_type_object->labels->name,
),
)
);
}
// Get post category info
$category = get_the_category();
if (!empty($category)) {
// Get last category post is in
$values = array_values($category);
$last_category = reset($values);
$categories = array();
$get_cat_parents = rtrim(get_category_parents($last_category->term_id, true, ','), ',');
$cat_parents = explode(',', $get_cat_parents);
foreach ($cat_parents as $parent) {
$categories[] = get_term_by('name', $parent, 'category');
}
// Loop through parent categories and store in variable $cat_display
$cat_display = '';
foreach ($categories as $parent) {
if (!is_wp_error(get_term_link($parent))) {
$cat_display .= '- ' . esc_html( $parent->name ) . '
';
$cat_display .= $this->render_separator(false);
}
}
}
// If it's a custom post type within a custom taxonomy
$taxonomy_exists = taxonomy_exists($custom_taxonomy);
$taxonomy_terms = [];
if (empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
$taxonomy_terms = get_the_terms($post->ID, $custom_taxonomy);
}
// Check if the post is in a category
if (!empty($last_category)) {
echo $cat_display; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
$this->add_render_attribute(
array(
'breadcrumbs-item-post-cat' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-current',
'htmega-breadcrumb-item-' . esc_attr( $post->ID ),
),
)
)
);
echo '- get_render_attribute_string('breadcrumbs-item-post-cat') . '">' . esc_html( get_the_title() ) . '
';
// Else if post is in a custom taxonomy
} elseif ($taxonomy_terms) {
foreach ($taxonomy_terms as $index => $taxonomy) {
$cat_id = $taxonomy->term_id;
$cat_nicename = $taxonomy->slug;
$cat_link = get_term_link($taxonomy->term_id, $custom_taxonomy);
$cat_name = $taxonomy->name;
$this->add_render_attribute(
array(
'breadcrumbs-item-post-cpt' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
'breadcrumbs-item-post-cpt-crumb' => array(
'class' => array(
'htmega-breadcrumb-crumb',
),
'href' => $cat_link,
'title' => $cat_name,
),
)
);
echo '- get_render_attribute_string('breadcrumbs-item-post-cpt') . '">get_render_attribute_string('breadcrumbs-item-post-cpt-crumb') . '>' . esc_html( $cat_name ) . '
';
$this->render_separator();
}
$this->add_render_attribute(
array(
'breadcrumbs-item-post' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-' . esc_attr( $post->ID ),
),
)
)
);
echo '- get_render_attribute_string('breadcrumbs-item-post') . '">' . esc_html( get_the_title() ) . '
';
} else {
$this->add_render_attribute(
array(
'breadcrumbs-item-post' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-current',
'htmega-breadcrumb-item-' . esc_attr( $post->ID ),
),
)
)
);
echo '- get_render_attribute_string('breadcrumbs-item-post') . '">' . esc_html( get_the_title() ) . '
';
}
} elseif ($query->is_category()) {
$this->add_render_attribute(
array(
'breadcrumbs-item-cat' => array(
'class' => array(
'htmega-breadcrumb-item',
),
)
)
);
// Category page
echo '- get_render_attribute_string('breadcrumbs-item-cat') . '>' . single_cat_title('', false) . '
';
} elseif ($query->is_page()) {
// Standard page
if ($post->post_parent) {
// If child page, get parents
$anc = get_post_ancestors($post->ID);
// Get parents in the right order
$anc = array_reverse($anc);
// Parent page loop
if (!isset($parents)) {
$parents = null;
}
foreach ($anc as $ancestor) {
$parents .= '- ' . get_the_title($ancestor) . '
';
$parents .= $this->render_separator(false);
}
// Display parent pages
echo $parents; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
$this->add_render_attribute(
array(
'breadcrumbs-item-page' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-current',
'htmega-breadcrumb-item-' . esc_attr( $post->ID ),
),
)
)
);
// Just display current page if not parents
echo '- get_render_attribute_string('breadcrumbs-item-page') . '>' . esc_html( get_the_title() ) . '
';
} elseif ($query->is_tag()) {
// Tag page
// Get tag information
$term_id = get_query_var('tag_id');
$taxonomy = 'post_tag';
// $args = 'include=' . $term_id;
// $terms = get_terms($taxonomy, $args);
$terms = get_terms([
'taxonomy' => $taxonomy,
'include' => $term_id,
]);
$get_term_id = $terms[0]->term_id;
$get_term_slug = $terms[0]->slug;
$get_term_name = $terms[0]->name;
$this->add_render_attribute(
array(
'breadcrumbs-item-tag' => array(
'class' => array(
'htmega-breadcrumb-item',
'htmega-breadcrumb-item-current',
'htmega-breadcrumb-item-tag-' . esc_attr( $get_term_id ),
'htmega-breadcrumb-item-tag-' . esc_attr( $get_term_slug ),
),
)
)
);
// Display the tag name
echo '- get_render_attribute_string('breadcrumbs-item-tag') . '>' . esc_html( $get_term_name ). '
';
} elseif ($query->is_day()) {
$this->add_render_attribute(
array(
'breadcrumbs-item-year' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
'breadcrumbs-item-year-crumb' => array(
'class' => array(
'htmega-breadcrumb-crumb',
),
'href' => get_year_link(get_the_time('Y')),
'title' => get_the_time('Y'),
),
'breadcrumbs-item-month' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
'breadcrumbs-item-month-crumb' => array(
'class' => array(
'htmega-breadcrumb-crumb',
),
'href' => get_month_link(get_the_time('Y'), get_the_time('m')),
'title' => get_the_time('M'),
),
'breadcrumbs-item-day' => array(
'class' => array(
'htmega-breadcrumb-item',
),
)
)
);
// Year link
echo '- get_render_attribute_string('breadcrumbs-item-year') . '>get_render_attribute_string('breadcrumbs-item-year-crumb') . '>' . esc_html( get_the_time('Y') ) . ' ' . esc_html__('Archives', 'htmega-pro') . '
';
$this->render_separator();
// Month link
echo '- get_render_attribute_string('breadcrumbs-item-month') . '>get_render_attribute_string('breadcrumbs-item-month-crumb') . '>' . esc_html( get_the_time('M') ) . ' ' . esc_html__('Archives', 'htmega-pro') . '
';
$this->render_separator();
// Day display
echo '- get_render_attribute_string('breadcrumbs-item-day') . '>' . esc_html( get_the_time('jS') ) . ' ' . esc_html( get_the_time('M') ) . ' ' . esc_html__('Archives', 'htmega-pro') . '
';
} elseif ($query->is_month()) {
$this->add_render_attribute(
array(
'breadcrumbs-item-year' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
'breadcrumbs-item-year-crumb' => array(
'class' => array(
'htmega-breadcrumb-crumb',
),
'href' => get_year_link(get_the_time('Y')),
'title' => get_the_time('Y'),
),
'breadcrumbs-item-month' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
)
);
// Year link
echo '- get_render_attribute_string('breadcrumbs-item-year') . '>' . esc_html( get_the_time('Y') ) . ' ' . esc_html__('Archives', 'htmega-pro') . '
';
$this->render_separator();
// Month display
echo '- get_render_attribute_string('breadcrumbs-item-month') . '>' . esc_html( get_the_time('M') ) . ' ' . esc_html__('Archives', 'htmega-pro') . '
';
} elseif ($query->is_year()) {
$this->add_render_attribute(
array(
'breadcrumbs-item-year' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
)
);
// Display year archive
echo '- get_render_attribute_string('breadcrumbs-item-year') . '>' . esc_html( get_the_time('Y') ) . ' ' . esc_html__('Archives', 'htmega-pro') . '
';
} elseif ($query->is_author()) {
// Get the author information
global $author;
$userdata = get_userdata($author);
$this->add_render_attribute(
array(
'breadcrumbs-item-author' => array(
'class' => array(
'htmega-breadcrumb-item',
),
)
)
);
// Display author name
echo '- get_render_attribute_string('breadcrumbs-item-author') . '>' . esc_html__('Author:', 'htmega-pro') . ' ' . esc_html( $userdata->display_name ) . '
';
} elseif (get_query_var('paged')) {
$this->add_render_attribute(
array(
'breadcrumbs-item-paged' => array(
'class' => array(
'htmega-breadcrumb-item',
),
)
)
);
// Paginated archives
echo '- get_render_attribute_string('breadcrumbs-item-paged') . '>' . esc_html__('Page', 'htmega-pro') . ' ' . esc_html( get_query_var('paged') ) . '
';
} elseif ($query->is_search()) {
// Search results page
$this->add_render_attribute(
array(
'breadcrumbs-item-search' => array(
'class' => array(
'htmega-breadcrumb-item',
),
)
)
);
// Search results page
echo '- get_render_attribute_string('breadcrumbs-item-search') . '>' . esc_html__('Search results for:', 'htmega-pro') . ' ' . esc_html( get_search_query() ) . '
';
} elseif ($query->is_404()) {
$this->add_render_attribute(
array(
'breadcrumbs-item-error' => array(
'class' => array(
'htmega-breadcrumb-item',
),
),
)
);
// 404 page
echo '- get_render_attribute_string('breadcrumbs-item-error') . '>' . esc_html__('Error 404', 'htmega-pro') . '
';
}
echo '
';
echo '
';
}
}
protected function get_separator() {
$settings = $this->get_settings_for_display();
ob_start();
if ('icon' === $settings['separator_type']) {
if (!isset($settings['separator_icon']) && !\Elementor\Icons_Manager::is_migration_allowed()) {
// add old default
$settings['separator_icon'] = 'fa fa-angle-right';
}
$has_icon = !empty($settings['separator_icon']);
if ($has_icon) {
$this->add_render_attribute('separator-icon', 'class', $settings['separator_icon']);
$this->add_render_attribute('separator-icon', 'aria-hidden', 'true');
}
if (!$has_icon && !empty($settings['select_separator_icon']['value'])) {
$has_icon = true;
}
$migrated = isset($settings['__fa4_migrated']['select_separator_icon']);
$is_new = !isset($settings['separator_icon']) && \Elementor\Icons_Manager::is_migration_allowed();
if ($has_icon) {
?>
'true'));
} elseif (!empty($settings['separator_icon'])) { ?>