Soporte » WordPress Avanzado » Funcion add_settings_field, para que sirve?

  • Resuelto inigonz

    (@inigonz)


    Buenas a todos,

    No entiendo que hace la función add_settings_field.
    Ahora mismo veo que cuando la pongo con el callback, me crea un th vacío que no me gusta.

    He creado una pagina de menú para las opciones del tema,

    add_menu_page(
    	"Theme Opciones",
    	"Theme Opciones",
    	"manage_options",
    	"options",
    	"functionsLogos", 
    	"dashicons-clipboard"
    );

    En la función callback «functionsLogos»,

    function functionsLogos() {
    ?>
    	<form id="logosForm" method="post" action="options.php">
    <?php
    		settings_fields( "sectionLogos" );
    		do_settings_sections( "settingLogos" );
    		submit_button();
    ?>
    	</form>
    <?php
    }

    Creo las secciones y los campos con su callback de los campos en el admin_init,

    function registerLogos() {
    	add_settings_section( 'sectionLogos', 'LOGOS', 'viewLogos', 'settingLogos' );
    	//add_settings_field( 'viewLogosID', '', 'viewLogos', 'settingLogos', 'sectionLogos' );
    
    	register_setting( 'sectionLogos', 'logos', 'logos_sanitize_settings' );
    }
    add_action( 'admin_init', 'registerLogos' );
    
    function logos_sanitize_settings( $input ) {
    	$input['blanco'] 	= sanitize_text_field( $input['blanco'] );
    	$input['azul'] 		= sanitize_text_field( $input['azul'] );
    	$input['gris'] 		= sanitize_text_field( $input['gris'] );
    	$input['negro'] 	= sanitize_text_field( $input['negro'] );
    	$input['mobile'] 	= sanitize_text_field( $input['mobile'] );
    	$input['desktop'] 	= sanitize_text_field( $input['desktop'] );
    
    	return $input;
    }

    Y la función de la vista,

    function viewLogos() {
    	$logos = get_option('logos');
    ?>
    	<div>
    		<p><label for="logos[blanco]">Logo Blanco</label></p>
    		<input type="text" name="logos[blanco]" value="<?php echo esc_attr($logos['blanco']); ?>" />
    		<img src="<?php echo esc_attr($logos['blanco']); ?>" />
    	</div>
    <?php
    }

    Entonces el add_settings_field que tengo comentado que haría? he estado leyendo el codex, viendo otras paginas y no llego a comprender que me hace, ya que con esa funcion comentada y poniedo la funcion de vista en el section me funciona perfectamente.

    Muchas gracias de antemano por la ayuda.

    Saludos

Viendo 6 respuestas - 1 de 6 (de 6 total)
Viendo 6 respuestas - 1 de 6 (de 6 total)
  • Debes estar registrado para responder a este tema.