autosaves-preview.php
1 year ago
index.php
7 months ago
menu-preview.php
1 year ago
site-data-preview.php
1 year ago
site-data-preview.php
50 lines
| 1 | <?php |
| 2 | |
| 3 | use IlluminateAgnostic\Arr\Support\Arr; |
| 4 | |
| 5 | add_action( |
| 6 | 'kubio/preview/handle_custom_entities', |
| 7 | function ( $data ) { |
| 8 | $kind = Arr::get( $data, 'kind' ); |
| 9 | $name = Arr::get( $data, 'name' ); |
| 10 | |
| 11 | // map bloginfo( $show:string ) $show to root/site data |
| 12 | $bloginfo_map = array( |
| 13 | 'name' => 'title', |
| 14 | ); |
| 15 | |
| 16 | $options_map = array( |
| 17 | 'title' => 'option_blogname', |
| 18 | 'sitelogo' => 'theme_mod_custom_logo', |
| 19 | 'site_logo' => 'theme_mod_custom_logo', |
| 20 | 'site_icon' => 'option_site_icon', |
| 21 | ); |
| 22 | |
| 23 | $dummy_value = uniqid( 'kubio-dummy-' ); |
| 24 | |
| 25 | if ( $kind === 'root' && $name === 'site' ) { |
| 26 | add_filter( |
| 27 | 'bloginfo', |
| 28 | function ( $output, $key ) use ( $data, $bloginfo_map ) { |
| 29 | $key = Arr::get( $bloginfo_map, $key, $key ); |
| 30 | return Arr::get( $data, $key, $output ); |
| 31 | }, |
| 32 | 10, |
| 33 | 2 |
| 34 | ); |
| 35 | |
| 36 | foreach ( $options_map as $option_key => $filter_key ) { |
| 37 | if ( Arr::has( $data, $option_key ) ) { |
| 38 | $option_value = Arr::get( $data, $option_key, $dummy_value ); |
| 39 | add_filter( |
| 40 | $filter_key, |
| 41 | function () use ( $option_value, $option_key ) { |
| 42 | return $option_value; |
| 43 | } |
| 44 | ); |
| 45 | } |
| 46 | } |
| 47 | } |
| 48 | } |
| 49 | ); |
| 50 |