get_Id() );
}
if ( ! empty( $primary_term ) ) {
return $primary_term;
}
return $term;
}
/**
* Make primary term the active term in category widget.
* @param \WP_Term $term WooCommerce main term object.
*
* @return \WP_Term Term object.
*/
public function make_primary_term_current_category( $term ) {
global $product;
$primary_term_id = $this->get_primary_term_id( false, $product );
if ( $primary_term_id ) {
$_term = get_term_by( 'id', $primary_term_id, 'product_cat' );
if ( $_term instanceof \WP_Term ) {
return $_term;
}
}
return $term;
}
/**
* Retrieve primary product term ID, set through YOAST.
*
* @param string $term The original term string.
* @param \WC_Product $product Product.
*
* @return int|string
*/
public function get_primary_term_id( $term, $product ) {
if ( function_exists( 'yoast_get_primary_term_id' ) ) {
$primary_term_id = yoast_get_primary_term_id( 'product_cat', $product->get_Id() );
}
if ( ! empty( $primary_term_id ) ) {
return $primary_term_id;
}
return $term;
}
/**
* Yoast breadcrumbs.
*
* @param string|array $class One or more classes to add to the class list.
* @param bool $display Whether to display the breadcrumb (true) or return it (false).
*/
public function yoast_breadcrumb( $class = '', $display = true ) {
if ( function_exists( 'yoast_breadcrumb' ) ) {
$classes = is_array( $class ) ? $class : array_map( 'trim', explode( ' ', $class ) );
$classes[] = 'yoast-breadcrumb';
$classes[] = 'breadcrumbs';
$classes[] = get_theme_mod( 'breadcrumb_case', 'uppercase' );
$classes = array_unique( array_filter( $classes ) );
$classes = implode( ' ', $classes );
yoast_breadcrumb( '', $display );
}
}
/**
* Removes last crumb in the crumbs array.
*
* @param array $crumbs The crumbs array.
*
* @return mixed
*/
public function remove_last_crumb( $crumbs ) {
if ( count( $crumbs ) > 1 ) {
array_pop( $crumbs );
}
return $crumbs;
}
/**
* Adds a link to last crumb, use in conjunction with remove_last_crumb()
*
* @param string $output The output string.
* @param array $crumb The link array.
*
* @return string
*/
public function add_link_to_last_crumb( $output, $crumb ) {
$output = '';
$output .= $crumb['text'];
$output .= '';
return $output;
}
/**
* Wrap breadcrumb separator.
*
* @param string $separator Breadcrumbs separator.
*
* @return string
*/
public function wrap_crumb_separator( $separator ) {
return '' . $separator . '';
}
/**
* Adds images to XML sitemap.
*
* @param array $images Current post images.
* @param int $post_id The post ID.
*/
public function sitemap_url_images( $images, $post_id ) {
$post = get_post( $post_id );
if ( ! $post ) return $images;
$content = $post->post_content;
$image_extractor = Flatsome_Shortcode_Image_Extractor::get_instance();
$extracted_images = $image_extractor->extract_images( $content );
if ( ! empty( $extracted_images ) ) {
$images = array_merge( $images, $extracted_images );
}
return $images;
}
/**
* Initializes the object and returns its instance.
*
* @return WP_Seo The object instance
*/
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
}
WP_Seo::get_instance();