Como você pode fazer o upload de uma imagem dentro de uma página de configurações?

Existe uma maneira fácil de include uma checkbox de upload na sua página de configurações?

Estou construindo uma página de Opções de Gráfico Aberto e eu gosto de usuários para fazer upload de uma imagem padrão diretamente dessa página.

Solutions Collecting From Web of "Como você pode fazer o upload de uma imagem dentro de uma página de configurações?"

O WordPress fornece uma function conveniente para este propósito: wp_handle_upload() .

Supondo que você já tenha o campo de formulário de arquivo apropriado em sua página de configurações e que esteja usando register_setting() para suas opções e, portanto, já tenha uma chamada de retorno de validação de opções, simplesmente lida com os dados do campo do formulário do arquivo usando wp_handle_upload() . Aqui está um exemplo:

 < ?php // Validate file fields else if ( 'file' == $optiondetails['type'] ) { if ( isset( $input[$setting] ) ) { // Only update setting if input value is in the list of valid options $setting_file = $setting . '_file'; $valid_input[$setting] = ( isset( $_FILES[$setting_file] ) ? theme-slug_image_upload( $setting, $input ) : $valid_input[$setting] ); } } ?> 

Então, você só precisa definir esse theme-slug_image_upload() retorno de chamada, usando wp_handle_upload() :

 < ?php function theme-slug_image_upload( $the_file, $input ) { $data = $_FILES[$the_file . '_file']; if ( '' != $data['name'] ) $upload = wp_handle_upload( $_FILES[$the_file . '_file'], array( 'test_form' => false ) ); else $upload['url'] = $input[$the_file]; return $upload['url']; } ?> 

Isso é praticamente isso.