first
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* Rank Math SEO Plugin.
|
||||
*
|
||||
* @package visual-portfolio
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class Visual_Portfolio_3rd_Rank_Math
|
||||
*/
|
||||
class Visual_Portfolio_3rd_Rank_Math {
|
||||
/**
|
||||
* Visual_Portfolio_3rd_Rank_Math constructor.
|
||||
*/
|
||||
public function __construct() {
|
||||
// Fixed canonical links.
|
||||
add_filter( 'rank_math/frontend/canonical', array( 'Visual_Portfolio_Archive_Mapping', 'get_canonical' ) );
|
||||
add_filter( 'rank_math/frontend/title', array( $this, 'get_title' ) );
|
||||
add_filter( 'rank_math/opengraph/facebook/og_title', array( $this, 'get_title' ) );
|
||||
add_action( 'rank_math/head', array( $this, 'set_query_as_archive' ), 5 ); // priority one level lower than what the plugin uses.
|
||||
add_action( 'rank_math/head', array( $this, 'remove_query_as_archive' ), 23 ); // priority one level higher than what the plugin uses.
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow changing the Rank Math generated title.
|
||||
*
|
||||
* @param string $title - Current Page Title.
|
||||
* @return string
|
||||
*/
|
||||
public function get_title( $title ) {
|
||||
return Visual_Portfolio_Archive_Mapping::get_current_term_title() ?? $title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set query as archive temporary.
|
||||
* This is necessary for the plugin to work correctly and set all the necessary settings in the page header.
|
||||
* Because our custom archive and taxonomy pages override the base query and interfere with the global object,
|
||||
* Conflicts may occur with some SEO plugins that work this way.
|
||||
* In this case, the search plugin is trying to place the assets needed for a regular page in the header,
|
||||
* While the page itself is defined as a taxonomy.
|
||||
* In this case, we let the plugin know that this is not a page, but a category.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function set_query_as_archive() {
|
||||
if ( Visual_Portfolio_Archive_Mapping::is_category() ) {
|
||||
global $wp_query;
|
||||
|
||||
$wp_query->is_archive = true;
|
||||
$wp_query->is_single = false;
|
||||
$wp_query->is_singular = false;
|
||||
$wp_query->is_page = false;
|
||||
$wp_query->is_post_type_archive = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove query as archive temporary.
|
||||
* This is necessary for the plugin to work correctly and set all the necessary settings in the page header.
|
||||
* Because our custom archive and taxonomy pages override the base query and interfere with the global object,
|
||||
* Conflicts may occur with some SEO plugins that work this way.
|
||||
* In this case, the search plugin is trying to place the assets needed for a regular page in the header,
|
||||
* While the page itself is defined as a taxonomy.
|
||||
* In this case, we let the plugin know that this is not a page, but a category.
|
||||
* This function cancels previous settings so as not to interfere with further system operation.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function remove_query_as_archive() {
|
||||
if ( Visual_Portfolio_Archive_Mapping::is_category() ) {
|
||||
global $wp_query;
|
||||
|
||||
$wp_query->is_archive = false;
|
||||
$wp_query->is_single = true;
|
||||
$wp_query->is_singular = true;
|
||||
$wp_query->is_page = true;
|
||||
$wp_query->is_post_type_archive = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
new Visual_Portfolio_3rd_Rank_Math();
|
Reference in New Issue
Block a user