Files
SIGE-WEB-snapshot/wp-content/plugins/all-in-one-video-gallery/public/rank-math.php

285 lines
8.9 KiB
PHP

<?php
/**
* Rank Math SEO.
*
* @link https://plugins360.com
* @since 3.9.5
*
* @package All_In_One_Video_Gallery
*/
// Exit if accessed directly
if ( ! defined( 'WPINC' ) ) {
die;
}
/**
* AIOVG_Public_Rank_Math class.
*
* @since 3.9.5
*/
class AIOVG_Public_Rank_Math {
/**
* Updates the page titles on the plugin pages.
*
* @since 3.9.5
* @param string $title Default page title.
* @return string $title The filtered page title.
*/
public function meta_title( $title ) {
global $post;
// Category Page
if ( $slug = get_query_var( 'aiovg_category' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_categories' ) ) {
// Get the global title template for the category pages
$title_template = RankMath\Helper::get_settings( 'titles.tax_aiovg_categories_title' );
// Get the title template for the current category page (if available)
$current_term_title_template = get_term_meta( $term->term_id, 'rank_math_title', true );
if ( ! empty( $current_term_title_template ) ) {
$title_template = $current_term_title_template;
}
if ( ! empty( $title_template ) ) {
$title = RankMath\Helper::replace_vars( $title_template, $term );
}
}
}
// Tag Page
if ( $slug = get_query_var( 'aiovg_tag' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_tags' ) ) {
// Get the global title template for the tag pages
$title_template = RankMath\Helper::get_settings( 'titles.tax_aiovg_tags_title' );
// Get the title template for the current tag page (if available)
$current_term_title_template = get_term_meta( $term->term_id, 'rank_math_title', true );
if ( ! empty( $current_term_title_template ) ) {
$title_template = $current_term_title_template;
}
if ( ! empty( $title_template ) ) {
$title = RankMath\Helper::replace_vars( $title_template, $term );
}
}
}
// User Videos Page
if ( $slug = get_query_var( 'aiovg_user' ) ) {
if ( $user = get_user_by( 'slug', $slug ) ) {
// Get the global title template for the pages
$title_template = RankMath\Helper::get_settings( 'titles.pt_page_title' );
// Get the title template for the current page (if available)
$current_page_title_template = get_post_meta( $post->ID, 'rank_math_title', true );
if ( ! empty( $current_page_title_template ) ) {
$title_template = $current_page_title_template;
}
if ( ! empty( $title_template ) ) {
$title_template = str_replace( '%title%', $user->display_name, $title_template );
$title = RankMath\Helper::replace_vars( $title_template, $post );
}
}
}
return $title;
}
/**
* Updates the page description on the plugin pages.
*
* @since 3.9.5
* @param string $description Default page description.
* @return string $description The filtered page description.
*/
public function meta_description( $description ) {
global $post;
// Category Page
if ( $slug = get_query_var( 'aiovg_category' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_categories' ) ) {
// Get the global description template for the category pages
$description_template = RankMath\Helper::get_settings( 'titles.tax_aiovg_categories_description' );
// Get the description template for the current category page (if available)
$current_term_description_template = get_term_meta( $term->term_id, 'rank_math_description', true );
if ( ! empty( $current_term_description_template ) ) {
$description_template = $current_term_description_template;
}
if ( ! empty( $description_template ) ) {
$description = RankMath\Helper::replace_vars( $description_template, $term );
}
}
}
// Tag Page
if ( $slug = get_query_var( 'aiovg_tag' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_tags' ) ) {
// Get the global description template for the tag pages
$description_template = RankMath\Helper::get_settings( 'titles.tax_aiovg_tags_description' );
// Get the description template for the current tag page (if available)
$current_term_description_template = get_term_meta( $term->term_id, 'rank_math_description', true );
if ( ! empty( $current_term_description_template ) ) {
$description_template = $current_term_description_template;
}
if ( ! empty( $description_template ) ) {
$description = RankMath\Helper::replace_vars( $description_template, $term );
}
}
}
// User Videos Page
if ( $slug = get_query_var( 'aiovg_user' ) ) {
if ( $user = get_user_by( 'slug', $slug ) ) {
// Get the global description template for the pages
$description_template = RankMath\Helper::get_settings( 'titles.pt_page_description' );
// Get the description template for the current page (if available)
$current_page_description_template = get_post_meta( $post->ID, 'rank_math_description', true );
if ( ! empty( $current_page_description_template ) ) {
$description_template = $current_page_description_template;
}
if ( ! empty( $description_template ) ) {
$description_template = str_replace( '%title%', $user->display_name, $description_template );
$description = RankMath\Helper::replace_vars( $description_template, $post );
}
}
}
return $description;
}
/**
* Updates the canonical URL on the plugin pages.
*
* @since 3.9.5
* @param string $canonical_url The canonical URL.
* @return string $canonical_url The filtered canonical URL.
*/
public function canonical_url( $canonical_url ) {
// Category Page
if ( $slug = get_query_var( 'aiovg_category' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_categories' ) ) {
$canonical_url = aiovg_get_category_page_url( $term );
}
}
// Tag Page
if ( $slug = get_query_var( 'aiovg_tag' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_tags' ) ) {
$canonical_url = aiovg_get_tag_page_url( $term );
}
}
// User Videos Page
if ( $slug = get_query_var( 'aiovg_user' ) ) {
if ( $user = get_user_by( 'slug', $slug ) ) {
$canonical_url = aiovg_get_user_videos_page_url( $user->ID );
}
}
return $canonical_url;
}
/**
* Updates the Open Graph image URL on the plugin pages.
*
* @since 3.9.5
* @param string $image_url The Image URL.
* @return string $image_url The filtered image URL.
*/
public function opengraph_image_url( $image_url ) {
// Category Page
if ( $slug = get_query_var( 'aiovg_category' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_categories' ) ) {
// Get the opengraph image URL for the current category page (if available)
$opengraph_image_url = get_term_meta( $term->term_id, 'rank_math_facebook_image', true );
if ( ! empty( $opengraph_image_url ) ) {
$image_url = $opengraph_image_url;
} else {
// Get the actual image URL for the current category page (if available)
$image_data = aiovg_get_image( $term->term_id, 'large', 'term' );
if ( ! empty( $image_data['src'] ) ) {
$image_url = $image_data['src'];
}
}
}
}
// Tag Page
if ( $slug = get_query_var( 'aiovg_tag' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_tags' ) ) {
// Get the opengraph image URL for the current category page (if available)
$opengraph_image_url = get_term_meta( $term->term_id, 'rank_math_facebook_image', true );
if ( ! empty( $opengraph_image_url ) ) {
$image_url = $opengraph_image_url;
}
}
}
return $image_url;
}
/**
* Filters the Breadcrumb items.
*
* @since 3.9.5
* @param array $crumbs Array of crumbs.
* @return array $crumbs The filtered array of crumbs.
*/
public function breadcrumb_items( $crumbs ) {
// Category Page
if ( $slug = get_query_var( 'aiovg_category' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_categories' ) ) {
// Include the parent categories if available
if ( $ancestors = get_ancestors( $term->term_id, 'aiovg_categories' ) ) {
$ancestors = array_reverse( $ancestors );
foreach ( $ancestors as $term_id ) {
if ( $parent_term = get_term_by( 'term_id', $term_id, 'aiovg_categories' ) ) {
$crumbs[] = array(
0 => $parent_term->name,
1 => aiovg_get_category_page_url( $parent_term )
);
}
}
}
// Include the current category page
$crumbs[] = array(
0 => $term->name
);
}
}
// Tag Page
if ( $slug = get_query_var( 'aiovg_tag' ) ) {
if ( $term = get_term_by( 'slug', $slug, 'aiovg_tags' ) ) {
$crumbs[] = array(
0 => $term->name
);
}
}
// User Videos Page
if ( $slug = get_query_var( 'aiovg_user' ) ) {
if ( $user = get_user_by( 'slug', $slug ) ) {
$crumbs[] = array(
0 => $user->display_name
);
}
}
return $crumbs;
}
}