diff --git src/wp-includes/sitemaps.php src/wp-includes/sitemaps.php
index 9600540156..f556246be5 100644
|
|
function wp_get_sitemaps() { |
58 | 58 | return array(); |
59 | 59 | } |
60 | 60 | |
61 | | return $sitemaps->registry->get_sitemaps(); |
| 61 | return $sitemaps->registry->get_providers(); |
62 | 62 | } |
63 | 63 | |
64 | 64 | /** |
… |
… |
function wp_register_sitemap( $name, WP_Sitemaps_Provider $provider ) { |
77 | 77 | return false; |
78 | 78 | } |
79 | 79 | |
80 | | return $sitemaps->registry->add_sitemap( $name, $provider ); |
| 80 | return $sitemaps->registry->add_provider( $name, $provider ); |
81 | 81 | } |
82 | 82 | |
83 | 83 | /** |
diff --git src/wp-includes/sitemaps/class-wp-sitemaps-index.php src/wp-includes/sitemaps/class-wp-sitemaps-index.php
index 91ceea0ae0..9449b4b6a4 100644
|
|
class WP_Sitemaps_Index { |
54 | 54 | public function get_sitemap_list() { |
55 | 55 | $sitemaps = array(); |
56 | 56 | |
57 | | $providers = $this->registry->get_sitemaps(); |
| 57 | $providers = $this->registry->get_providers(); |
58 | 58 | /* @var WP_Sitemaps_Provider $provider */ |
59 | 59 | foreach ( $providers as $name => $provider ) { |
60 | 60 | $sitemap_entries = $provider->get_sitemap_entries(); |
diff --git src/wp-includes/sitemaps/class-wp-sitemaps-registry.php src/wp-includes/sitemaps/class-wp-sitemaps-registry.php
index c95f04c77f..1235670a27 100644
|
|
|
2 | 2 | /** |
3 | 3 | * Sitemaps: WP_Sitemaps_Registry class |
4 | 4 | * |
5 | | * Handles registering sitemaps. |
| 5 | * Handles registering sitemap providers. |
6 | 6 | * |
7 | 7 | * @package WordPress |
8 | 8 | * @subpackage Sitemaps |
… |
… |
|
16 | 16 | */ |
17 | 17 | class WP_Sitemaps_Registry { |
18 | 18 | /** |
19 | | * Registered sitemaps. |
| 19 | * Registered sitemap providers. |
20 | 20 | * |
21 | 21 | * @since 5.5.0 |
22 | 22 | * |
23 | | * @var WP_Sitemaps_Provider[] Array of registered sitemaps. |
| 23 | * @var WP_Sitemaps_Provider[] Array of registered sitemap providers. |
24 | 24 | */ |
25 | | private $sitemaps = array(); |
| 25 | private $providers = array(); |
26 | 26 | |
27 | 27 | /** |
28 | 28 | * Adds a sitemap with route to the registry. |
29 | 29 | * |
30 | 30 | * @since 5.5.0 |
31 | 31 | * |
32 | | * @param string $name Name of the sitemap. |
| 32 | * @param string $name Name of the sitemap provider. |
33 | 33 | * @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider. |
34 | | * @return bool True if the sitemap was added, false if it is already registered. |
| 34 | * @return bool True if the provider was added, false if it is already registered. |
35 | 35 | */ |
36 | | public function add_sitemap( $name, WP_Sitemaps_Provider $provider ) { |
37 | | if ( isset( $this->sitemaps[ $name ] ) ) { |
| 36 | public function add_provider( $name, WP_Sitemaps_Provider $provider ) { |
| 37 | if ( isset( $this->providers[ $name ] ) ) { |
38 | 38 | return false; |
39 | 39 | } |
40 | 40 | |
41 | | $this->sitemaps[ $name ] = $provider; |
| 41 | $this->providers[ $name ] = $provider; |
42 | 42 | |
43 | 43 | return true; |
44 | 44 | } |
45 | 45 | |
46 | 46 | /** |
47 | | * Returns a single registered sitemaps provider. |
| 47 | * Returns a single registered sitemap provider. |
48 | 48 | * |
49 | 49 | * @since 5.5.0 |
50 | 50 | * |
51 | 51 | * @param string $name Sitemap provider name. |
52 | 52 | * @return WP_Sitemaps_Provider|null Sitemaps provider if it exists, null otherwise. |
53 | 53 | */ |
54 | | public function get_sitemap( $name ) { |
55 | | if ( ! isset( $this->sitemaps[ $name ] ) ) { |
| 54 | public function get_provider( $name ) { |
| 55 | if ( ! isset( $this->providers[ $name ] ) ) { |
56 | 56 | return null; |
57 | 57 | } |
58 | 58 | |
59 | | return $this->sitemaps[ $name ]; |
| 59 | return $this->providers[ $name ]; |
60 | 60 | } |
61 | 61 | |
62 | 62 | /** |
… |
… |
class WP_Sitemaps_Registry { |
66 | 66 | * |
67 | 67 | * @return WP_Sitemaps_Provider[] Array of sitemap providers. |
68 | 68 | */ |
69 | | public function get_sitemaps() { |
70 | | return $this->sitemaps; |
| 69 | public function get_providers() { |
| 70 | return $this->providers; |
71 | 71 | } |
72 | 72 | } |
diff --git src/wp-includes/sitemaps/class-wp-sitemaps.php src/wp-includes/sitemaps/class-wp-sitemaps.php
index 828e7931dc..01f1bf8b35 100644
|
|
class WP_Sitemaps { |
135 | 135 | // Register each supported provider. |
136 | 136 | /* @var WP_Sitemaps_Provider $provider */ |
137 | 137 | foreach ( $providers as $name => $provider ) { |
138 | | $this->registry->add_sitemap( $name, $provider ); |
| 138 | $this->registry->add_provider( $name, $provider ); |
139 | 139 | } |
140 | 140 | } |
141 | 141 | |
… |
… |
class WP_Sitemaps { |
212 | 212 | exit; |
213 | 213 | } |
214 | 214 | |
215 | | $provider = $this->registry->get_sitemap( $sitemap ); |
| 215 | $provider = $this->registry->get_provider( $sitemap ); |
216 | 216 | |
217 | 217 | if ( ! $provider ) { |
218 | 218 | return; |
diff --git tests/phpunit/tests/sitemaps/sitemaps-index.php tests/phpunit/tests/sitemaps/sitemaps-index.php
index 56b92be569..f959da8344 100644
|
|
class Test_WP_Sitemaps_Index extends WP_UnitTestCase { |
13 | 13 | * There are 2 providers registered. |
14 | 14 | * Hence, 3*4*2=24. |
15 | 15 | */ |
16 | | $registry->add_sitemap( 'foo', new WP_Sitemaps_Test_Provider( 'foo' ) ); |
17 | | $registry->add_sitemap( 'bar', new WP_Sitemaps_Test_Provider( 'bar' ) ); |
| 16 | $registry->add_provider( 'foo', new WP_Sitemaps_Test_Provider( 'foo' ) ); |
| 17 | $registry->add_provider( 'bar', new WP_Sitemaps_Test_Provider( 'bar' ) ); |
18 | 18 | |
19 | 19 | $sitemap_index = new WP_Sitemaps_Index( $registry ); |
20 | 20 | $this->assertCount( 24, $sitemap_index->get_sitemap_list() ); |
… |
… |
class Test_WP_Sitemaps_Index extends WP_UnitTestCase { |
29 | 29 | $registry = new WP_Sitemaps_Registry(); |
30 | 30 | |
31 | 31 | // add 3 providers, which combined produce more than the maximum 50000 sitemaps in the index. |
32 | | $registry->add_sitemap( 'provider_1', new WP_Sitemaps_Large_Test_Provider( 25000 ) ); |
33 | | $registry->add_sitemap( 'provider_2', new WP_Sitemaps_Large_Test_Provider( 25000 ) ); |
34 | | $registry->add_sitemap( 'provider_3', new WP_Sitemaps_Large_Test_Provider( 25000 ) ); |
| 32 | $registry->add_provider( 'provider_1', new WP_Sitemaps_Large_Test_Provider( 25000 ) ); |
| 33 | $registry->add_provider( 'provider_2', new WP_Sitemaps_Large_Test_Provider( 25000 ) ); |
| 34 | $registry->add_provider( 'provider_3', new WP_Sitemaps_Large_Test_Provider( 25000 ) ); |
35 | 35 | |
36 | 36 | $count = 0; |
37 | | foreach ( $registry->get_sitemaps() as $provider ) { |
| 37 | foreach ( $registry->get_providers() as $provider ) { |
38 | 38 | $count += count( $provider->get_url_list( 1 ) ); |
39 | 39 | } |
40 | 40 | $this->assertGreaterThan( 50000, $count ); |
… |
… |
class Test_WP_Sitemaps_Index extends WP_UnitTestCase { |
46 | 46 | public function test_get_sitemap_list_no_entries() { |
47 | 47 | $registry = new WP_Sitemaps_Registry(); |
48 | 48 | |
49 | | $registry->add_sitemap( 'foo', new WP_Sitemaps_Empty_Test_Provider( 'foo' ) ); |
| 49 | $registry->add_provider( 'foo', new WP_Sitemaps_Empty_Test_Provider( 'foo' ) ); |
50 | 50 | |
51 | 51 | $sitemap_index = new WP_Sitemaps_Index( $registry ); |
52 | 52 | $this->assertCount( 0, $sitemap_index->get_sitemap_list() ); |
diff --git tests/phpunit/tests/sitemaps/sitemaps-registry.php tests/phpunit/tests/sitemaps/sitemaps-registry.php
index c6c664a65b..faeba78852 100644
|
|
|
4 | 4 | * @group sitemaps |
5 | 5 | */ |
6 | 6 | class Test_WP_Sitemaps_Registry extends WP_UnitTestCase { |
7 | | public function test_add_sitemap() { |
| 7 | public function test_add_provider() { |
8 | 8 | $provider = new WP_Sitemaps_Test_Provider(); |
9 | 9 | $registry = new WP_Sitemaps_Registry(); |
10 | 10 | |
11 | | $actual = $registry->add_sitemap( 'foo', $provider ); |
12 | | $sitemaps = $registry->get_sitemaps(); |
| 11 | $actual = $registry->add_provider( 'foo', $provider ); |
| 12 | $sitemaps = $registry->get_providers(); |
13 | 13 | |
14 | 14 | $this->assertTrue( $actual ); |
15 | 15 | $this->assertCount( 1, $sitemaps ); |
16 | 16 | $this->assertSame( $sitemaps['foo'], $provider, 'Can not confirm sitemap registration is working.' ); |
17 | 17 | } |
18 | 18 | |
19 | | public function test_add_sitemap_prevent_duplicates() { |
| 19 | public function test_add_provider_prevent_duplicates() { |
20 | 20 | $provider1 = new WP_Sitemaps_Test_Provider(); |
21 | 21 | $provider2 = new WP_Sitemaps_Test_Provider(); |
22 | 22 | $registry = new WP_Sitemaps_Registry(); |
23 | 23 | |
24 | | $actual1 = $registry->add_sitemap( 'foo', $provider1 ); |
25 | | $actual2 = $registry->add_sitemap( 'foo', $provider2 ); |
26 | | $sitemaps = $registry->get_sitemaps(); |
| 24 | $actual1 = $registry->add_provider( 'foo', $provider1 ); |
| 25 | $actual2 = $registry->add_provider( 'foo', $provider2 ); |
| 26 | $sitemaps = $registry->get_providers(); |
27 | 27 | |
28 | 28 | $this->assertTrue( $actual1 ); |
29 | 29 | $this->assertFalse( $actual2 ); |