[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/customize/ -> class-wp-customize-nav-menus-panel.php (source)

   1  <?php
   2  /**
   3   * Customize API: WP_Customize_Nav_Menus_Panel class
   4   *
   5   * @package WordPress
   6   * @subpackage Customize
   7   * @since 4.4.0
   8   */
   9  
  10  /**
  11   * Customize Nav Menus Panel Class
  12   *
  13   * Needed to add screen options.
  14   *
  15   * @since 4.3.0
  16   *
  17   * @see WP_Customize_Panel
  18   */
  19  class WP_Customize_Nav_Menus_Panel extends WP_Customize_Panel {
  20  
  21      /**
  22       * Control type.
  23       *
  24       * @since 4.3.0
  25       * @var string
  26       */
  27      public $type = 'nav_menus';
  28  
  29      /**
  30       * Render screen options for Menus.
  31       *
  32       * @since 4.3.0
  33       */
  34  	public function render_screen_options() {
  35          // Adds the screen options.
  36          require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
  37          add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns' );
  38  
  39          // Display screen options.
  40          $screen = WP_Screen::get( 'nav-menus.php' );
  41          $screen->render_screen_options( array( 'wrap' => false ) );
  42      }
  43  
  44      /**
  45       * Returns the advanced options for the nav menus page.
  46       *
  47       * Link title attribute added as it's a relatively advanced concept for new users.
  48       *
  49       * @since 4.3.0
  50       * @deprecated 4.5.0 Deprecated in favor of wp_nav_menu_manage_columns().
  51       */
  52  	public function wp_nav_menu_manage_columns() {
  53          _deprecated_function( __METHOD__, '4.5.0', 'wp_nav_menu_manage_columns' );
  54          require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
  55          return wp_nav_menu_manage_columns();
  56      }
  57  
  58      /**
  59       * An Underscore (JS) template for this panel's content (but not its container).
  60       *
  61       * Class variables for this panel class are available in the `data` JS object;
  62       * export custom variables by overriding WP_Customize_Panel::json().
  63       *
  64       * @since 4.3.0
  65       *
  66       * @see WP_Customize_Panel::print_template()
  67       */
  68  	protected function content_template() {
  69          ?>
  70          <li class="panel-meta customize-info accordion-section <# if ( ! data.description ) { #> cannot-expand<# } #>">
  71              <button type="button" class="customize-panel-back" tabindex="-1">
  72                  <span class="screen-reader-text"><?php _e( 'Back' ); ?></span>
  73              </button>
  74              <div class="accordion-section-title">
  75                  <span class="preview-notice">
  76                      <?php
  77                      /* translators: %s: The site/panel title in the Customizer. */
  78                      printf( __( 'You are customizing %s' ), '<strong class="panel-title">{{ data.title }}</strong>' );
  79                      ?>
  80                  </span>
  81                  <button type="button" class="customize-help-toggle dashicons dashicons-editor-help" aria-expanded="false">
  82                      <span class="screen-reader-text"><?php _e( 'Help' ); ?></span>
  83                  </button>
  84                  <button type="button" class="customize-screen-options-toggle" aria-expanded="false">
  85                      <span class="screen-reader-text"><?php _e( 'Menu Options' ); ?></span>
  86                  </button>
  87              </div>
  88              <# if ( data.description ) { #>
  89              <div class="description customize-panel-description">{{{ data.description }}}</div>
  90              <# } #>
  91              <div id="screen-options-wrap">
  92                  <?php $this->render_screen_options(); ?>
  93              </div>
  94          </li>
  95          <?php
  96          // NOTE: The following is a workaround for an inability to treat (and thus label) a list of sections as a whole.
  97          ?>
  98          <li class="customize-control-title customize-section-title-nav_menus-heading"><?php _e( 'Menus' ); ?></li>
  99          <?php
 100      }
 101  
 102      /**
 103       * Checks required user capabilities and whether the theme has the
 104       * feature support required by the panel.
 105       *
 106       * @since 5.9.0
 107       *
 108       * @return bool False if theme doesn't support the panel or the user doesn't have the capability.
 109       */
 110  	public function check_capabilities() {
 111          /*
 112           * WP_Customize_Panel::$theme_supports only supports checking one
 113           * theme_supports, so instead we override check_capabilities().
 114           */
 115          if (
 116              ! current_theme_supports( 'menus' ) &&
 117              ! current_theme_supports( 'widgets' )
 118          ) {
 119              return false;
 120          }
 121  
 122          return parent::check_capabilities();
 123      }
 124  }


Generated: Thu Apr 25 01:00:03 2024 Cross-referenced by PHPXref 0.7.1