[ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Sitemaps: Public functions 4 * 5 * This file contains a variety of public functions developers can use to interact with 6 * the XML Sitemaps API. 7 * 8 * @package WordPress 9 * @subpackage Sitemaps 10 * @since 5.5.0 11 */ 12 13 /** 14 * Retrieves the current Sitemaps server instance. 15 * 16 * @since 5.5.0 17 * 18 * @global WP_Sitemaps $wp_sitemaps Global Core Sitemaps instance. 19 * 20 * @return WP_Sitemaps Sitemaps instance. 21 */ 22 function wp_sitemaps_get_server() { 23 global $wp_sitemaps; 24 25 // If there isn't a global instance, set and bootstrap the sitemaps system. 26 if ( empty( $wp_sitemaps ) ) { 27 $wp_sitemaps = new WP_Sitemaps(); 28 $wp_sitemaps->init(); 29 30 /** 31 * Fires when initializing the Sitemaps object. 32 * 33 * Additional sitemaps should be registered on this hook. 34 * 35 * @since 5.5.0 36 * 37 * @param WP_Sitemaps $wp_sitemaps Sitemaps object. 38 */ 39 do_action( 'wp_sitemaps_init', $wp_sitemaps ); 40 } 41 42 return $wp_sitemaps; 43 } 44 45 /** 46 * Gets an array of sitemap providers. 47 * 48 * @since 5.5.0 49 * 50 * @return WP_Sitemaps_Provider[] Array of sitemap providers. 51 */ 52 function wp_get_sitemap_providers() { 53 $sitemaps = wp_sitemaps_get_server(); 54 55 return $sitemaps->registry->get_providers(); 56 } 57 58 /** 59 * Registers a new sitemap provider. 60 * 61 * @since 5.5.0 62 * 63 * @param string $name Unique name for the sitemap provider. 64 * @param WP_Sitemaps_Provider $provider The `Sitemaps_Provider` instance implementing the sitemap. 65 * @return bool Whether the sitemap was added. 66 */ 67 function wp_register_sitemap_provider( $name, WP_Sitemaps_Provider $provider ) { 68 $sitemaps = wp_sitemaps_get_server(); 69 70 return $sitemaps->registry->add_provider( $name, $provider ); 71 } 72 73 /** 74 * Gets the maximum number of URLs for a sitemap. 75 * 76 * @since 5.5.0 77 * 78 * @param string $object_type Object type for sitemap to be filtered (e.g. 'post', 'term', 'user'). 79 * @return int The maximum number of URLs. 80 */ 81 function wp_sitemaps_get_max_urls( $object_type ) { 82 /** 83 * Filters the maximum number of URLs displayed on a sitemap. 84 * 85 * @since 5.5.0 86 * 87 * @param int $max_urls The maximum number of URLs included in a sitemap. Default 2000. 88 * @param string $object_type Object type for sitemap to be filtered (e.g. 'post', 'term', 'user'). 89 */ 90 return apply_filters( 'wp_sitemaps_max_urls', 2000, $object_type ); 91 } 92 93 /** 94 * Retrieves the full URL for a sitemap. 95 * 96 * @since 5.5.1 97 * 98 * @param string $name The sitemap name. 99 * @param string $subtype_name The sitemap subtype name. Default empty string. 100 * @param int $page The page of the sitemap. Default 1. 101 * @return string|false The sitemap URL or false if the sitemap doesn't exist. 102 */ 103 function get_sitemap_url( $name, $subtype_name = '', $page = 1 ) { 104 $sitemaps = wp_sitemaps_get_server(); 105 106 if ( ! $sitemaps ) { 107 return false; 108 } 109 110 if ( 'index' === $name ) { 111 return $sitemaps->index->get_index_url(); 112 } 113 114 $provider = $sitemaps->registry->get_provider( $name ); 115 if ( ! $provider ) { 116 return false; 117 } 118 119 if ( $subtype_name && ! in_array( $subtype_name, array_keys( $provider->get_object_subtypes() ), true ) ) { 120 return false; 121 } 122 123 $page = absint( $page ); 124 if ( 0 >= $page ) { 125 $page = 1; 126 } 127 128 return $provider->get_sitemap_url( $subtype_name, $page ); 129 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Dec 22 01:00:02 2024 | Cross-referenced by PHPXref 0.7.1 |