PluginProbe
WPGraphQL / trunk
WPGraphQL vtrunk
2.22.3 2.22.2 2.22.1 2.22.0 2.21.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.0 2.15.1 2.15.0 2.14.1 2.14.0 2.13.0 2.2.0 2.3.0 2.3.3 2.3.6 2.3.8 2.5.0 2.5.1 2.5.2 2.5.3 All 177 releases
wp-graphql / src / Data / Loader / ThemeLoader.php

ThemeLoader.php in WPGraphQL trunk, at src/Data/Loader/ThemeLoader.php

52 lines 958 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace WPGraphQL\Data\Loader;
3
4 use WPGraphQL\Model\Theme;
5
6 /**
7 * Class ThemeLoader
8 *
9 * @package WPGraphQL\Data\Loader
10 */
11 class ThemeLoader extends AbstractDataLoader {
12
13 /**
14 * {@inheritDoc}
15 *
16 * @param mixed|\WP_Theme $entry The User Role object
17 *
18 * @return \WPGraphQL\Model\Theme
19 */
20 protected function get_model( $entry, $key ) {
21 return new Theme( $entry );
22 }
23
24 /**
25 * {@inheritDoc}
26 *
27 * @return array<int|string,?\WP_Theme>
28 */
29 public function loadKeys( array $keys ) {
30 $themes = wp_get_themes();
31 $loaded = [];
32
33 if ( is_array( $themes ) && ! empty( $themes ) ) {
34 foreach ( $keys as $key ) {
35 $loaded[ $key ] = null;
36
37 if ( isset( $themes[ $key ] ) ) {
38 $stylesheet = $themes[ $key ]->get_stylesheet();
39 $theme = wp_get_theme( $stylesheet );
40 if ( $theme->exists() ) {
41 $loaded[ $key ] = $theme;
42 } else {
43 $loaded[ $key ] = null;
44 }
45 }
46 }
47 }
48
49 return $loaded;
50 }
51 }
52