Custom_Background::take_action() – Execute custom background modification.

You appear to be a bot. Output may be restricted

Description

Executes custom background modification.

Usage

Custom_Background::take_action();

Parameters

Returns

void

Source

File name: wordpress/wp-admin/includes/class-custom-background.php
Lines:

1 to 100 of 110
  public function take_action() {
    if ( empty( $_POST ) ) {
      return;
    }

    if ( isset( $_POST['reset-background'] ) ) {
      check_admin_referer( 'custom-background-reset', '_wpnonce-custom-background-reset' );

      remove_theme_mod( 'background_image' );
      remove_theme_mod( 'background_image_thumb' );

      $this->updated = true;
      return;
    }

    if ( isset( $_POST['remove-background'] ) ) {
      // @todo Uploaded files are not removed here.
      check_admin_referer( 'custom-background-remove', '_wpnonce-custom-background-remove' );

      set_theme_mod( 'background_image', '' );
      set_theme_mod( 'background_image_thumb', '' );

      $this->updated = true;
      wp_safe_redirect( $_POST['_wp_http_referer'] );
      return;
    }

    if ( isset( $_POST['background-preset'] ) ) {
      check_admin_referer( 'custom-background' );

      if ( in_array( $_POST['background-preset'], array( 'default', 'fill', 'fit', 'repeat', 'custom' ), true ) ) {
        $preset = $_POST['background-preset'];
      } else {
        $preset = 'default';
      }

      set_theme_mod( 'background_preset', $preset );
    }

    if ( isset( $_POST['background-position'] ) ) {
      check_admin_referer( 'custom-background' );

      $position = explode( ' ', $_POST['background-position'] );

      if ( in_array( $position[0], array( 'left', 'center', 'right' ), true ) ) {
        $position_x = $position[0];
      } else {
        $position_x = 'left';
      }

      if ( in_array( $position[1], array( 'top', 'center', 'bottom' ), true ) ) {
        $position_y = $position[1];
      } else {
        $position_y = 'top';
      }

      set_theme_mod( 'background_position_x', $position_x );
      set_theme_mod( 'background_position_y', $position_y );
    }

    if ( isset( $_POST['background-size'] ) ) {
      check_admin_referer( 'custom-background' );

      if ( in_array( $_POST['background-size'], array( 'auto', 'contain', 'cover' ), true ) ) {
        $size = $_POST['background-size'];
      } else {
        $size = 'auto';
      }

      set_theme_mod( 'background_size', $size );
    }

    if ( isset( $_POST['background-repeat'] ) ) {
      check_admin_referer( 'custom-background' );

      $repeat = $_POST['background-repeat'];

      if ( 'no-repeat' !== $repeat ) {
        $repeat = 'repeat';
      }

      set_theme_mod( 'background_repeat', $repeat );
    }

    if ( isset( $_POST['background-attachment'] ) ) {
      check_admin_referer( 'custom-background' );

      $attachment = $_POST['background-attachment'];

      if ( 'fixed' !== $attachment ) {
        $attachment = 'scroll';
      }

      set_theme_mod( 'background_attachment', $attachment );
    }

    if ( isset( $_POST['background-color'] ) ) {
      check_admin_referer( 'custom-background' );

      $color = preg_replace( '/[^0-9a-fA-F]/', '', $_POST['background-color'] );
 

 View on GitHub View on Trac