探索,發現,愛好、學習,記錄,分享。
學海無涯,天涯若比鄰,三人行,必有我師。

Rank Math SEO Filters and Hooks for Developers

Use this filter to add new tabs into the Meta Box added by Rank Math below every post/page in WordPress Editor.

/**
 * Allow developers to add new tabs into main metabox.
 *
 * @param array $tabs Array of tabs.
 */
add_filter( 'rank_math/metabox/tabs', function( $tabs) {
 return $tabs;
});

Use this filter to change the Rank Math metabox priority to low so it appears after other metaboxes like ACF fields.

/**
 * Change the Rank Math Metabox Priority
 *
 * @param array $priority Metabox Priority.
 */
add_filter( 'rank_math/metabox/priority', function( $priority ) {
 return 'low';
});

Use this filter to increase or decrease the number of maximum focus keywords that can be added in the single post or page editor.

/**
 * Change the Focus Keyword Limit
 */
add_filter( 'rank_math/focus_keyword/maxtags', function() {
    return 10; // Number of Focus Keywords. 
});

This filter allows you to add or remove a section from the general settings options panel of Rank Math plugin.

/**
 * Allow developers to add new section into general setting option panel.
 *
 * @param array $tabs
 */
add_filter( 'rank_math/settings/general', function( $tabs) {
 return $tabs;
});

You can add or remove a custom section to or from the Title Settings option panel with this setting.

/**
 * Allow developers to add new section into general setting option panel.
 *
 * @param array $tabs
 */
add_filter( 'rank_math/settings/title', function( $tabs) {
 return $tabs;
});
/**
 * Allow developers to add option fields to check against updatation.
 * And if updated flush the rewrite rules.
 *
 * @param array $flush_fields Array of fields id for which we need to flush.
 */
add_filter( 'rank_math/flush_fields', function( $fields) {
 return $fields;
});
/**
 * Allow developers to add new tabs into option panel.
 *
 * The dynamic part of hook is, page name without 'rank-math-' prefix.
 *
 * @param array $tabs
 */
add_filter( "rank_math/admin/options/{$filter}_tabs", function( $tabs ) {
 return $tabs;
});
/**
 * Allow developers to modify the test or score.
 *
 * @param array  $tests Array of tests with score
 * @param string $type  Object type. Can be post, user or term.
 */
add_filter( 'rank_math/researches/tests', function( $tests, $type ) {
 return $tests;
}, 10, 2 );
/**
 * Number of items to import per run.
 *
 * @param int $items_per_page Default 100.
 */
add_filter( 'rank_math/importers/items_per_page', function( $items_per_page ) {
 return $items_per_page;
});

Add or remove an item from the WordPress admin-bar menu that Rank Math adds to the frontend of your WordPress website.

/**
 * Add item to Rank Math admin bar node.
 *
 * @param array $items Array of nodes for Rank Math menu.
 */
add_filter( 'rank_math/admin_bar/items', function( $items ) {
 return $items;
});

Set a default value for general settings when Rank Math is installed on a WP website.

/**
 * Add defaults for general options.
 *
 * @param array $settings Array of settings and its values.
 */
add_filter( 'rank_math/settings/defaults/general', function( $settings ) {
 return $settings;
});
/**
 * Add defaults for title options.
 *
 * @param array $settings Array of settings and its values.
 */
add_filter( 'rank_math/settings/defaults/titles', function( $settings ) {
 return $settings;
});
/**
 * Add defaults for Sitemap options.
 *
 * @param array $settings Array of settings and its values.
 */
add_filter( 'rank_math/settings/defaults/sitemap', function( $settings ) {
 return $settings;
});
/**
 * Filters the array of modules available to be activated.
 *
 * @param array $modules Array of available modules.
 */
add_filter( 'rank_math/modules', function( $modules ) {
 return $modules;
});

Use this filter to change the URL base for author archives.

/**
 * Allow developers to change the author base.
 *
 * @param string $base The author base.
 */
add_filter( 'rank_math/author_base', function( $base ) {
 return $base;
});
/**
 * Allow developer to change the address part format.
 *
 * @param string $parts_format String format  how to output address part.
 */
add_filter( 'rank_math/shortcode/contact/address_parts_format', function( $format ) {
 return $format;
});

17. Filter to change Post type icons in the options panel.

/**
 * Allow developer to change post types icons.
 *
 * @param array $icons Array of available icons.
 */
add_filter( 'rank_math/post_type_icons', function( $icons ) {
 return $icons;
});
/**
 * Allow developer to change taxonomies icons.
 *
 * @param array $icons Array of available icons.
 */
add_filter( 'rank_math/taxonomy_icons', function( $icons ) {
 return $icons;
});
/**
 * Allow developer to enable/disable overlay icon option in Post Settings.
 *
 * @param string $value   Default is set to off.
 * @param string $service Can be faceboo or twitter.
 *
 */
add_filter( 'rank_math/metabox/social/overlay_icon', function( $value, $service ) {
 return $value;
}, 10, 2 );
/**
 * Allow developer to enable/disable Link Suggestion Metabox for specific post type.
 *
 * @param string $default   Default is set to on.
 * @param string $post_type Post type name.
 *
 */
add_filter( 'rank_math/settings/titles/link_suggestions', function( $default, $post_type ) {
 return $default;
}, 10, 2 );
/**
 * Allow developer to default Snippet type by post type.
 *
 * @param string $type      Snippet Type.
 * @param string $post_type Post type name.
 *
 */
add_filter( 'rank_math/settings/snippet/type', function( $type, $post_type ) {
 return $default;
}, 10, 2 );

22. Filter to set default Snippet Article type for the post type.

/**
 * Allow developer to default Snippet Article type by post type.
 *
 * @param string $type      Article Type.
 * @param string $post_type Post type name.
 *
 */
add_filter( 'rank_math/settings/snippet/article_type', function( $type, $post_type ) {
 return $default;
}, 10, 2 );
/**
 * Filter to add custom variables
 */
add_filter( 'rank_math/vars/replacements', function( $vars ) {
 return $vars;
});
/**
 * Action: 'rank_math/vars/register_extra_replacements' - Allows adding extra variables.
 */add_action( 'rank_math/vars/register_extra_replacements', function(){
 rank_math_register_var_replacement(
 'custom_variable_slug',
 [
 'name'        => esc_html__( 'Custom variable name.', 'rank-math' ),
 'description' => esc_html__( 'Custom variable description.', 'rank-math' ),
 'variable'    => 'custom_variable_slug',
 'example'     => 'custom_variable_callback()',
 ],
 'custom_variable_callback()'
 );
});
/**
 * Filter to show/hide SEO Metabox.
 */
add_filter( 'rank_math/metabox/add_seo_metabox', function( $default ) {
 return $default;
});
/**
 * Filter to change Separator %sep%.
 */
add_filter( 'rank_math/settings/title_separator', function( $sep ) {
 return $sep;
});
/**
 * Filter to turn off auto-update notification emails.
 */
add_filter( 'rank_math/auto_update_send_email', '__return_false' );
/**
 * Filter to edit the auto-update notification emails.
 */
add_filter( 'rank_math/auto_update_email', function( $email, $version, $plugin_upgrader_obj ) {
  $email['to_address'] = '[email protected]';
  $email['body'] = "Rank Math has been updated to version {$version}.";
  return $email;
});
/**
 * Filter to add custom Power Words
 */
add_filter( 'rank_math/metabox/power_words', function( $words ){
	$new_words = [
		'test-word1',
		'test-word2',
		'test-word3',
	];
	return array_merge( $words, $new_words );
});

Please follow this tutorial before using this filter.

/**
 * Filter to replace Rank Math Google API App
 */
add_filter(
	'rank_math/search_console/alternate_app',
	function( $config ) {
		$config['application_name'] = 'Rank Math';
		$config['client_id']        = 'xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com';
		$config['client_secret']    = 'xxxxxxxx-xxxxxxxxxxxxxxxxx';
		return $config;
	}
);
/**
 * Filter to change default Settings Mode(Easy or Advanced)
 */
add_filter( 'rank_math/setup_mode', function( $mode ) {
    return $mode;
});
/**
 * Filters to change the CSV separator character in the CSV Importer file
 */
add_filter( 'rank_math/csv_import/separator', function( $separator ) {
    return ';';
} );
/**
 * Filter to change the Sitemap URL Base
 *
 * @param string $base New URL Base
 */
add_filter( 'rank_math/sitemap/base_url', function( $base ){
	return '/search-sitemaps/';
}, 10, 1 );
/**
 * Filter XML sitemap cache directory.
 *
 * @param string $unsigned Default cache directory
 */
add_filter( 'rank_math/sitemap/cache_directory', function( $directory) {
	return $directory;
});
/**
 * Filter if XML sitemap transient cache is enabled.
 *
 * @param boolean $unsigned Enable cache or not, defaults to true
 */
add_filter( 'rank_math/sitemap/enable_caching', '__return_true');

4. Filter to exclude post type from the Sitemap.

/**
 * Filter decision if post type is excluded from the XML sitemap.
 *
 * @param bool   $exclude Default false.
 * @param string $type    Post type name.
 */
add_filter( 'rank_math/sitemap/exclude_post_type', function( $exclude, $type ){
	return $exclude;
}, 10, 2 );
/**
 * Filter URL entry before it gets added to the sitemap.
 *
 * @param array  $url  Array of URL parts.
 * @param string $type URL type. Can be user, post or term.
 * @param object $object Data object for the URL.
 */
add_filter( 'rank_math/sitemap/entry', function( $url, $type, $object ){
	return $url;
}, 10, 3 );
/**
 * Filter the URL Rank Math SEO uses in the XML sitemap for this post type archive.
 *
 * @param string $archive_url The URL of this archive
 * @param string $post_type   The post type this archive is for.
 */
add_filter( 'rank_math/sitemap/post_type_archive_link', function( $archive_url, $post_type ){
	return $archive_url;
}, 10, 2 );

7. Filter to change/remove Post URL, plugin uses in the sitemap.

/**
 * Filter the URL Rank Math SEO uses in the XML sitemap.
 *
 * Note that only absolute local URLs are allowed as the check after this removes external URLs.
 *
 * @param string $url  URL to use in the XML sitemap
 * @param object $post Post object for the URL.
 */
add_filter( 'rank_math/sitemap/xml_post_url', function( $url, $post){
	return $url;
}, 10, 2 );
/**
 * Filter decision if taxonomy is excluded from the XML sitemap.
 *
 * @param bool   $exclude Default false.
 * @param string $type    Taxonomy name.
 */
add_filter( 'rank_math/sitemap/exclude_taxonomy', function( $exclude, $type ){
	return $exclude;
}, 10, 2 );
/**
 * Filter the setting of excluding empty terms from the XML sitemap.
 *
 * @param boolean $exclude        Defaults to true.
 * @param array   $taxonomy_names Array of names for the taxonomies being processed.
 */
add_filter( 'rank_math/sitemap/exclude_empty_terms', function( $exclude , $taxonomy_names ){
	return $exclude;
}, 10, 2 );
/**
 * Filter images to be included for the post in XML sitemap.
 *
 * @param array $images  Array of image items.
 * @param int   $post_id ID of the post.
 */
add_filter( 'rank_math/sitemap/urlimages', function( $images, $post_id ){
	return $images;
}, 10, 2);
/**
 * Filter to remove sitemap credit.
 *
 * @param boolean Defaults to false.
 */
add_filter( 'rank_math/sitemap/remove_credit', '__return_true');
/**
 Filter to add extra URLs to the XML sitemap by type.
 *
 Only runs for the first page, not on all.
 *
 @param string $content String content to add, defaults to empty.
 */
add_action( 'rank_math/sitemap/{$type}_content', function() {
return '<url>
<loc>https://rankmath.com/some-custom-url/</loc>
<lastmod>2020-06-10T20:20:20+00:00</lastmod>
</url>';
});

Replace {$type} with either post or page depending on if you want the URL to be include in the post or page sitemap – respectively.

/**
 * Filter to add Locations KML file in the sitemap
 */
add_filter( 'rank_math/sitemap/locations', '__return_true' );
/**
 * Filter to Add CDN Image URLs in the Sitemap
 *
 * @param string $src  Image URL.
 * @param object $post Post object.
 */
add_filter( 'rank_math/sitemap/xml_img_src', function( $src, $post ){
	$src = str_replace( 'http://domain.com', 'https://cdn.domain.com', $src );
	return $src;
}, 10, 2);
/**
 * Filter to detect Sitemap URL in the Search Console if you are using different plugin for sitemap.
 */
add_filter( 'rank_math/sitemap/sitemap_index_uri', function() { return 'sitemap.xml'; } );
/**
 * Filter to change user query arguments for the sitemap listing
 */
add_filter( 'rank_math/sitemap/author/query', function( $args ) {
	$args['role__not_in'] = 'subscriber'; return $args;
} );
/**
* Filter to add `noindex` URLs in the Sitemap
*
* @param bool $value Whether to include noindex terms in Sitemap.
* @param string $type Object Type.
*
* @return boolean
*/
add_filter( 'rank_math/sitemap/include_noindex', function( $value, $type ) {
	return true;
}, 10, 2 );
add_filter( 'rank_math/sitemap/index', function( $xml ) {
	$xml .= '
		<sitemap>
			<loc>http://example.com/new-sitemap.xml</loc>
			<lastmod>2020-09-14T20:34:15+00:00</lastmod>
		</sitemap>';
		return $xml;
}, 11 );
/**
 * Filter to add links in the new Sitemap.
 */
add_filter( 'rank_math/sitemap/{$type}/content', function() {
	return '
		<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
			<url>
				<loc>http://example.com/new-sitemap-post/</loc>
				<lastmod>2020-09-14T20:34:15+00:00</lastmod>
			</url>
		</urlset>';
} );

Add these lines to the theme’s functions.php file

/**
 * Filter to change breadcrumb settings.
 *
 * @param  array $settings Breadcrumb Settings.
 * @return array $setting.
 */
add_filter( 'rank_math/frontend/breadcrumb/settings', function( $settings ) {
	$settings = array(
		'home'           => true,
		'separator'      => '',
		'remove_title'   => '',
		'hide_tax_name'  => '',
		'show_ancestors' => '',
	);
	return $settings;
});

Add these lines to the theme’s functions.php file

/**
 * Filter to change breadcrumb strings.
 *
 * @param  array $settings Breadcrumb Strings.
 * @return array $strings.
 */
add_filter( 'rank_math/frontend/breadcrumb/strings', function( $strings ) {
	$strings = array(
		'prefix'         => '',
		'home'           => '',
		'error404'       => '',
		'archive_format' => '',
		'search_format'  => '',
	);
	return $strings;
});

Add these lines to the theme’s functions.php file

/**
 * Filter to change breadcrumb args.
 *
 * @param  array $args Breadcrumb args.
 * @return array $args.
 */
add_filter( 'rank_math/frontend/breadcrumb/args', function( $args ) {
	$args = array(
		'delimiter'   => '&nbsp;/&nbsp;',
		'wrap_before' => '<nav class="rank-math-breadcrumb"><p>',
		'wrap_after'  => '</p></nav>',
		'before'      => '',
		'after'       => '',
	);
	return $args;
});

Add these lines to the theme’s functions.php file

/**
 * Filter to change breadcrumb html.
 *
 * @param  html  $html Breadcrumb html.
 * @param  array $crumbs Breadcrumb items
 * @param  class $class Breadcrumb class
 * @return html  $html.
 */
add_filter( 'rank_math/frontend/breadcrumb/html', function( $html, $crumbs, $class ) {
	// theme_breadcrumb_function();
	return $html;
}, 10, 3);

Add these lines to the theme’s functions.php file

/**
 * Filter to change the primary term output of the breadcrumbs class.
 *
 * @param WP_Term $term  Primary term.
 * @param array   $terms Terms attached to the current post.
 */
add_filter( 'rank_math/frontend/breadcrumb/main_term', function( $current_term, $terms ) {
	return $current_term;
}, 10, 2 );

Add these lines to the theme’s functions.php file

/**
 * Allow changing or removing the Breadcrumb items
 *
 * @param array       $crumbs The crumbs array.
 * @param Breadcrumbs $this   Current breadcrumb object.
 */
add_filter( 'rank_math/frontend/breadcrumb/items', function( $crumbs, $class ) {
	return $crumbs;
}, 10, 2);

Add these lines to the theme’s functions.php file

/**
 * Allow changing Breadcrumb elements in BreadcrumbList snippet
 *
 * @param array $entity Breadcrumb entity
 */
add_filter( 'rank_math/snippet/breadcrumb', function( $entity ) {
	return $entity;
});
/**
 * Filter to change the page title.
 * 
 * @param string $title
 */
add_filter( 'rank_math/frontend/title', function( $title ) {
	return $title;
});
/**
 * Code to move title inside the Rank Math's meta
 * 
 * @param string $title
 */
add_action( 'init', function() {
	remove_action( 'wp_head', '_wp_render_title_tag', 1 );
	add_action( 'rank_math/head', '_wp_render_title_tag', 1 );
});
/**
 * Allow changing the meta description sentence from within the theme.
 *
 * @param string $description The description sentence.
 */
add_filter( 'rank_math/frontend/description', function( $description ) {
	return $description;
});
/**
 * Use the Description from Global Setting, if the description is missing in the Post metabox
 */
add_action( 'rank_math/frontend/description', function( $description ) {
 global $post;
 $desc = RankMath\Post::get_meta( 'description', $post->ID );

 if ( ! $desc ) {
 $desc = RankMath\Helper::get_settings( "titles.pt_{$post->post_type}_description" );
 if ( $desc ) {
 return RankMath\Helper::replace_vars( $desc, $post );
 }
 }

 return $description;
});
/**
 * Allows filtering of the robots meta data.
 *
 * @param array $robots The meta robots directives.
 */
add_filter( 'rank_math/frontend/robots', function( $robots ) {
	return $robots;
});
/**
 * Allow changing of the canonical URL.
 *
 * @param string $canonical The canonical URL.
 */
add_filter( 'rank_math/frontend/canonical', function( $canonical ) {
	return $canonical;
});
/**
 * Filter to remove the plugin credit notice added to the source.
 *
 */
add_filter( 'rank_math/frontend/remove_credit_notice', '__return_true' );
/**
 * Allows developers to handle rel="next" / rel="prev" by themselves.
 *
 * @param bool $links_generated Whether or not to handle rel="next" / rel="prev" links.
 */
add_filter( 'rank_math/frontend/disable_adjacent_rel_links', '__return_true' );
/**
 * Allow the changing of link rel output by Rank Math.
 *
 * @param string $link The full `<link` element.
 * $rel can be next or prev
 */
add_filter( "rank_math/frontend/{$rel}_rel_link", function( $link ) {
 return $link;
});
/**
 * Add <meta name="keywords" content="focus keywords">.
 */
add_filter( 'rank_math/frontend/show_keywords', '__return_true');
/**
 * Allow changing the meta keywords from the default Focus Keywords.
 *
 * @param string $keywords Keywords.
 */
add_filter( 'rank_math/frontend/keywords', function( $keywords ) {
 return $keywords;
});
/**
 * Allow shortcodes in the Meta Data.
 */
add_filter( 'rank_math/paper/auto_generated_description/apply_shortcode', '__return_true' );
/**
* Filter to allow shortcodes in the Product schema description.
*/
add_filter( 'rank_math/product_description/apply_shortcode', '__return_true' );
/**
 * Allows theme developers to change the OpenGraph type of the page.
 *
 * @param string $type The OpenGraph type string.
 */
add_filter( 'rank_math/opengraph/type', function( $type ) {
	return $type;
});
/**
 * Allows the output of the canonical URL as OpenGraph URL, consolidating likes and shares.
 *
 * @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
 * @param $url Canonical URL
 */
add_filter( 'rank_math/opengraph/url', function( $url ) {
	return $url;
});
/**
 * Allows changing the Twitter Card type as output in the Twitter card.
 *
 * @param string $type
 */
add_filter( 'rank_math/opengraph/twitter_card', '__return_false' );
/**
 * Allows developers to change the OpenGraph image within theme.
 *
 * The dynamic part of the hook name. $network, is the network slug. Can be facebook or twitter.
 *
 * @param string $attachment_url The image we are about to add.
 */
add_filter( "rank_math/opengraph/{$network}/image", function( $attachment_url ) {
	return $attachment_url;
});
/**
 * Allows developers to add images to the OpenGraph tags within the theme.
 *
 * The dynamic part of the hook name. $network, is the network slug. Can be facebook or twitter.
 *
 * @param Image The current object.
 */
add_filter( 'rank_math/opengraph/{$network}/add_additional_images', function( $image ) {
	return $image;
});
/**
 * Passing a truthy value to the filter will effectively short-circuit the
 * set default image process.
 *
 * @param bool $return Short-circuit return value. Either false or true.
 */
add_filter( 'rank_math/opengraph/pre_set_default_image', '__return_true' );
/**
 * Passing a truthy value to the filter will effectively short-circuit the
 * set content image process.
 *
 * @param bool $return  Short-circuit return value. Either false or true.
 * @param int  $post_id Post ID for the current post.
 */
add_filter( 'rank_math/opengraph/pre_set_content_image', function( $return, $post_id ) {
	return $return; // Set to true if you don't want to set image from Content.
});
/**
 * Determines which image sizes we'll loop through to get an appropriate image.
 *
 * @param unsigned array - The array of image sizes to loop through. Default array( 'full', 'large', 'medium_large' )
 */
add_filter( 'rank_math/opengraph/image_sizes', function( $sizes ) {
	return $sizes;
});
/**
 * Allow developers to change the content of specific social meta tags.
 *
 * The dynamic part of the hook name. $network, is the network slug
 * and $og_property, is the property which we are outputting.
 *
 * @param string $content The content of the property.
 */
add_filter( "rank_math/opengraph/{$network}/$og_property", function( $content ) {
	return $content;
});
/**
 * Allow changing the Twitter Card type as output in the Twitter card.
 *
 * @param string $type
 */
add_filter( 'rank_math/opengraph/twitter/card_type', function( $type ) {
	return $type;
});
/**
 * Hook to remove og:tags
 */
add_action( 'rank_math/head', function() {
	remove_all_actions( 'rank_math/opengraph/facebook' );
	remove_all_actions( 'rank_math/opengraph/twitter' );
});
/**
 * Allow developers to prevent the output of the price in the OpenGraph tags.
 *
 * @param bool unsigned Defaults to true.
 */
add_filter( 'rank_math/woocommerce/og_price', '__return_false' );

Use this filter to remove the product:price:amount & product:price:currency meta tags.

/**
 * Code to remove json+ld data
 * 
 */
add_action( 'rank_math/head', function() {
	global $wp_filter;
	if ( isset( $wp_filter["rank_math/json_ld"] ) ) {
		unset( $wp_filter["rank_math/json_ld"] );
	}
});
/**
 * Collect data to output in JSON-LD.
 *
 * @param array  $unsigned An array of data to output in json-ld.
 * @param JsonLD $unsigned JsonLD instance.
 */
add_filter( 'rank_math/json_ld', function( $data, $jsonld ) {
	return [];
}, 99, 2);
/**
 * Allow developer to disable the breadcrumb json-ld output.
 *
 * @param bool $unsigned Default: true
 */
add_filter( 'rank_math/json_ld/breadcrumbs_enabled', '__return_false' );
/**
 * Allow developers to remove snippet data from Taxonomies.
 *
 * @param bool $unsigned Default: false
 * @param string $unsigned Taxonomy Name
 */
add_filter( 'rank_math/snippet/remove_taxonomy_data', function( $value, $taxonomy ) {
	return $value; // true or false
}, 10, 2);
/**
 * Filter: Allow disabling the review display.
 *
 * @param bool $return true to disable.
 */
add_filter( 'rank_math/snippet/review/hide_data', '__return_true' );
/**
 * Filter to change the review display location
 *
 * @param string $location top, bottom, both or custom.
 */
add_filter( 'rank_math/snippet/review/location', function( $location, $taxonomy ) {
	return $location;
});
/**
 * Filter to change review display location
 *
 * @param string $text Default Editor's choice.
 */
add_filter( 'rank_math/review/text', function( $text ) {
	return $text;
});
/**
 * Filter to change review display location
 *
 * @param string $html.
 */
add_filter( 'rank_math/review/html', function( $html ) {
	return $html;
});
/**
 * Filter to remove Schema Data from Posts.
 * Replace $schema_type with schema name like article, review, etc.
 * @param bool  $value true/false Default false
 * @param array $parts Post Data
 * @param array $data  Schmea Data
 * 
 * @return bool
 */
add_filter( "rank_math/snippet/rich_snippet_{$schema_type}", function( $value, $parts, $data ) {
 return true;
}, 10, 3 );

10. Filter to change Post’s Front-end Schema data

/**
 * Filter to change the schema data.
 * Replace $schema_type with schema name like article, review, etc.
 * @param array $entity Snippet Data
 * @return array
 */
add_filter( "rank_math/snippet/rich_snippet_{$schema}_entity", function( $entity ) {
 return $entity;
});
/**
 * Filter to add Brand Name for Products.
 *
 * @param array $entity Snippet Data
 * @return array
 */
add_filter( 'rank_math/snippet/rich_snippet_product_entity', function( $entity ) {
    $entity['brand'] = 'Rank Math';
    return $entity;
});
/**
 * Filter to change the rank_math_rich_snippet shortcode content.
 *
 * @param string $shortcode_html
 */
add_filter( 'rank_math/snippet/html', function( $shortcode_html ) {
	return $shortcode_html;
} );
/**
 * Filter to change parameters for the Front End SEO Score output.
 * Available parameters are: 'template', 'backlink', 'post_id', 'class'.
 *
 * @param array $args Parameters array.
 * @return array
 */
add_filter( "rank_math/frontend/seo_score/args", function( $args ) {
 return $args;
});
/**
 * Filter to change HTML output for the Front End SEO Score function.
 *
 * @param string $html HTML output.
 * @param array $args Function parameters.
 * @param string $score calculated SEO score.
 * @return string
 */
add_filter( "rank_math/frontend/seo_score/html", function( $html, $args, $score ) {
 return $html;
}, 10, 3);
/**
 * Filter to change the backlink inside the Front End SEO Score output.
 *
 * @param string $backlink Backlink HTML.
 * @return string
 */
add_filter( "rank_math/frontend/seo_score/backlink", function( $backlink ) {
 return $backlink;
});
/**
 * Filter to hide SEO SCcore
 */
add_filter( 'rank_math/show_score', '__return_false' );
/**
 * Allow developers to change number of redirections to process at once.
 *
 * @param int $number
 */
add_filter( 'rank_math/redirections/pastedContent', function( $number ) {
	return $number;
});
/**
 * Disable appending the query string in the redirection URL.
 *
 * @param int $number
 */
add_filter( 'rank_math/redirection/add_query_string', '__return_false' );

Use this filter to remove Rank Math integration from the Gutenberg Sidebar and add old meta boxes below the content area.

/**
 * Disable Gutenberg Sidebar Integration
 */
add_filter( 'rank_math/gutenberg/enabled', '__return_false' );
/**
 * Filter to add meta keys for enqueueing data in the Gutenberg
 */
add_filter( 'rank_math/metabox/{$type}/meta_keys', function( $keys ) {
	$keys['facebookTitle'] = 'facebook_title';
	return $args;
} );

When using this metakey, please prefix it with rank_math_

/**
 * Filter to add metadata for enqueueing for Gutenberg use
 */
add_filter( 'rank_math/metabox/{$type}/values', function( $values, $screen ) {
	$object_id   = $screen->get_object_id();
	$object_type = $screen->get_object_type();
	$values['videoSitemap'] = [
		'robots'       => $screen->get_meta( $object_type, $object_id, 'rank_math_news_sitemap_robots' ),
		'genres'       => $screen->get_meta( $object_type, $object_id, 'rank_math_news_sitemap_genres' ),
		'keywords'     => $screen->get_meta( $object_type, $object_id, 'rank_math_news_sitemap_keywords' ),
		'stockTickers' => $screen->get_meta( $object_type, $object_id, 'rank_math_news_sitemap_stock_tickers' ),
	];
	return $values;
} );

$type can be post, term and user.

/**
 * Filter to hide SEO Tab in the Elementor Editor.
 */
add_filter( 'rank_math/'elementor/add_seo_tab', '__return_false' );
/**
 * Redirect the attachment to its parent post.
 *
 * @param string $redirect URL as calculated for redirection.
 */
add_filter( 'rank_math/frontend/attachment/redirect_url', function( $redirect ) {
	return $redirect;
});
/**
 * Let developers determine hether or not to add rel="nofollow" to the links added by Rank Math to the RSS feed. This defaults to true.
 *
 * @param bool $unsigned To allow or not to follow the links in RSS feed, defaults to true.
 */
		add_filter( 'rank_math/frontend/rss/nofollow_links', '__return_false' );
/**
 * Show or hide the RSS footer dynamically.
 *
 * @param bool   $show_embed Whether RSS footer should be shown or not.
 * @param string $context    Indicated the context of the RSS content - whether 'full' or 'excerpt'.
 */
add_filter( 'rank_math/frontend/rss/include_footer', function( $bool, $context) {
	return $bool;
});
/**
 * Filter code to change content before RSS feed item
 *
 * @param string $content The content set in Settings.
 */
add_filter( 'rank_math/frontend/rss/before_content', function( $content ) {
	return $content ;
});
/**
 * Filter code to change content after RSS feed item
 *
 * @param string $content The content set in Settings.
 */
add_filter( 'rank_math/frontend/rss/after_content', function( $content ) {
	return $content ;
});
/**
 * Filter code to remove noopener rel from external links.
 */
add_filter( 'rank_math/noopener', '__return_false');
/**
 * Filter to allow disabling of the primary term feature.
 *
 * @param bool $return True to disable.
 */
add_filter( 'rank_math/admin/disable_primary_term', '__return_true' );
/**
 * Filter: 'rank_math_remove_reply_to_com' - Allow or disable the Rank Math feature that removes `?replytocom` 
 * query parameters from URLs.
 * @param bool $return True to remove, false not to remove.
 */
add_filter( 'rank_math/frontend/remove_reply_to_com', '__return_false');
/**
 * Filter: Remove/modify schema data.
 *
 * @param array $return Array of json-ld data.
 */
add_filter( 'rank_math/json_ld', function( $data, $json ) {
	if ( is_home() && isset( $data['Blog'] ) ) { // Remove Blog Snippet from homepage.
		unset( $data['Blog'] );
	}
	return $data;
}
/**
 * Filter: Prevent Rank Math from changing admin_footer_text.
 */
add_action( 'rank_math/whitelabel', '__return_true');
/**
 * Filter to add/remove noopener attribute based on a domain.
 * 
 * @param string $domain The domain in question.
 * 
 * @return boolean
 */
add_filter( 'rank_math/noopener/domain1', function( $domain ) {
	$exclude = [
		'github.com',
		'google.com',
	];

	if ( in_array( $domain, $exclude ) ) {
		return false;
	}

	return true;
});
/**
 * Filter to remove Rank Math data from the database
 */
add_filter( 'rank_math_clear_data_on_uninstall', '__return_true' );
  1. Add above code in the themes’ functions.php file
  2. Deactivate and delete the Rank Math plugin
/**
 * Allows filtering of the search URL.
 *
 * @param string $search_url The search URL for this site with a `{search_term_string}` variable.
 */
add_filter( 'rank_math/json_ld/search_url',  function( $url ) {
    return $url;
});
/**
 * Filter to add plugins to the TOC list.
 *
 * @param array TOC plugins.
 */
add_filter( 'rank_math/researches/toc_plugins', function( $toc_plugins ) {
       $toc_plugins['plugin-directory/plugin-filename.php'] = 'Plugin Name';
    return $toc_plugins;
});
/**
 * Filter to remove `rank-math-link` class from the frontend content links
 */
add_filter( 'rank_math/link/remove_class', '__return_true' );

Was this article helpful?

版權聲明:本文采用知識共享 署名4.0國際許可協議 [BY-NC-SA] 進行授權
轉載事宜:如需轉載需徵得應允,轉載必須注明來源於本站的信息。
文章名称:《Rank Math SEO Filters and Hooks for Developers》
文章链接:https://www.thefreesky.com/blog/26950.html
本站資源僅供個人學習交流,請於下載後24小時內刪除,不允許用於商業用途,否則法律問題自行承擔。

評論 抢沙发