首页 视频课程 主题开发课程第22章、主题选项 WordPress主题自定义设置控件注册方法

WordPress主题自定义设置控件注册方法

2023-06-11 / 347阅

WordPress主题自定义设置控件注册方法

在WordPress主题开发过程中,经常需要对自定义设置面板进行设计和开发。为增强设置面板的交互性和美观性,可以利用WordPress提供的API注册自定义控件。以下是WordPress主题自定义设置控件注册方法的示例代码。

1. 注册颜色选择器控件

function register_color_picker_customize_control( $wp_customize ) {
   class WP_Customize_Color_Control_Custom extends WP_Customize_Color_Control {
      public $type = 'color_picker';
      public function render_content() {
          ?>
          <label>
              <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
              <?php if ( isset( $this->description ) && '' !== $this->description ) { ?>
                  <span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
              <?php } ?>
              <input type="text" value="<?php echo esc_attr( $this->value() ); ?>" data-default-color="<?php echo esc_attr( $this->default ); ?>" class="custom-color-picker" <?php $this->link(); ?> />
          </label>
          <?php
      }
   }

   $wp_customize->register_control_type( 'WP_Customize_Color_Control_Custom' );
}
add_action( 'customize_register', 'register_color_picker_customize_control' ); 

2. 注册图片上传控件

function register_image_upload_customize_control( $wp_customize ) {
   class WP_Customize_Image_Control_Custom extends WP_Customize_Image_Control {
      public $type = 'image_upload';
      public function render_content() {
          ?>
          <label>
            <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
            <?php if ( isset( $this->description ) && '' !== $this->description ) { ?>
              <span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
            <?php } ?>
              <div class="image_preview">
                <?php if ( $this->value() ) { ?>
                  <img src="<?php echo esc_url( $this->value() ); ?>" alt="<?php esc_html_e( 'Image preview', 'text-domain' ); ?>" style="max-width: 100%;" />
                <?php } ?>
              </div>
              <input type="text" name="<?php echo esc_attr( $this->id ); ?>" value="<?php echo esc_url( $this->value() ); ?>" class="regular-text upload image_url <?php echo esc_attr( $this->type ); ?>" <?php $this->link(); ?> />
              <a href="#" class="button image_upload">Upload <?php echo esc_html( $this->type ); ?></a>
          </label>
          <?php
      }
   }

   $wp_customize->register_control_type( 'WP_Customize_Image_Control_Custom' );
}
add_action( 'customize_register', 'register_image_upload_customize_control' ); 

以上示例代码注册并扩展了颜色选择器控件和图片上传控件,可以根据需要进行更改和扩展。在主题开发过程中,根据设计需求合理注册和使用自定义控件,能够极大提高设置面板的用户体验和自定义性。

阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228

大家谈论
    我的见解
    目录