1: <?php
2:
3: /**
4: * Cached version of `wp_nav_menu`.
5: *
6: * @see https://developer.wordpress.org/reference/functions/wp_nav_menu/
7: *
8: * @param array $args
9: *
10: * @return mixed
11: */
12: function xu_wp_nav_menu( array $args = [] ) {
13: // Store echo value for later use.
14: $echo = isset( $args['echo'] ) ? $args['echo'] : true;
15:
16: // Set echo argument to false so `wp_nav_menu` don't echo.
17: $args['echo'] = false;
18:
19: // Get cached value.
20: $value = xu_cache_get( 'wp_nav_menu', [$args], __FUNCTION__ );
21:
22: // Don't print anything if false.
23: if ( $value === false ) {
24: return $value;
25: }
26:
27: // Echo value if it should be echo.
28: if ( $echo ) {
29: echo $value; // WPCS: xss ok
30: } else {
31: return $value;
32: }
33: }
34: