Make WordPress Core


Ignore:
Timestamp:
02/24/2016 06:27:45 PM (11 years ago)
Author:
westonruter
Message:

Customize: Allow controls to be registered without any associated settings.

  • Improves parity between partials and controls. A partial or control can be settingless if instantiated with settings param as empty array (otherwise, if null, then the partial/control ID is used).
  • Eliminate need to create dummy settings that serve no purpose except to place a control in the UI.
  • Removes dummy settings for create_new_menu and new_menu_name.
  • Introduces WP_Customize_Control::$capability and WP_Customize_Partial::$capability, and if set checks them in the respective check_capabilities() methods.
  • Prevents PHP fatal error from happening when non-existing settings are provided to control: "Call to a member function check_capabilities() on a non-object".
  • Fixes issue where nav menu items and widgets were no longer working with selective refresh because cap check was failing.

See #27355.
Fixes #35926.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/customize/partial.php

    r36643 r36689  
    326326                ) );
    327327                $this->assertFalse( $partial->check_capabilities() );
     328
     329                $partial = new WP_Customize_Partial( $this->selective_refresh, 'no_setting', array(
     330                        'settings' => array(),
     331                ) );
     332                $this->assertTrue( $partial->check_capabilities() );
     333
     334                $partial = new WP_Customize_Partial( $this->selective_refresh, 'no_setting', array(
     335                        'settings' => array(),
     336                        'capability' => 'top_secret_clearance',
     337                ) );
     338                $this->assertFalse( $partial->check_capabilities() );
     339
     340                $partial = new WP_Customize_Partial( $this->selective_refresh, 'no_setting', array(
     341                        'settings' => array(),
     342                        'capability' => 'edit_theme_options',
     343                ) );
     344                $this->assertTrue( $partial->check_capabilities() );
    328345        }
    329346
Note: See TracChangeset for help on using the changeset viewer.