it-swarm-pt.tech

usar add_settings_field corretamente?

Estou usando add_settings_field para adicionar mais detalhes a um menu de configurações, mas não sei como salvar as configurações ou chamá-las de volta ao meu tema.

Aqui está o código até agora

add_action('admin_init','vimeo_setup');

function vimeo_setup(){
add_settings_field('vimeo_id','Vimeo ID','display_vimeo','general');
}

function display_vimeo(){

 echo '<input  type="text" name="vimeo_id" id="vimeo_id" value="" size="30" style="width:85%" />';
 echo '<p><small> Enter your Vimeo ID here.</small></p>';
}
3
Mild Fuzz

Documentação para add_settings_field () Diz o seguinte:

Você DEVE registrar quaisquer opções usadas por esta função com register_setting () ou elas não serão salvas e atualizado automaticamente.

4
Rarst

Deve-se notar que, para adicionar um campo de configurações, você deve registrar esse campo em uma seção registrada.

Portanto, isso deve ser usado junto com sua própria seção registrada ou, alternativamente, como um campo para adicionar a uma seção existente (como aquelas em todas as páginas de opções).

Vejo. http://codex.wordpress.org/Function_Reference/add_settings_section

Eu diria até que isso não é realmente muito bom quando se trata de construir páginas de opções de plugins ou similares (opções de temas), simplesmente porque cada seção e campo registrados devem receber um callback (imagine quantos callbacks você precisa se você tiver 3-4 seções, todos com 5-6 campos). É claro que você pode fazer retornos de chamada dinâmicos (para que você precise apenas de um retorno de chamada para uma seção e um para os campos) passando os parâmetros ... (também é necessário imprimir os itens para essas seções/campos). .

Pessoalmente eu acho que é melhor apenas registrar suas opções/configurações, e imprimir suas próprias seções/campos, e chamar um único nonce para cobrir todas as suas configurações.

// 1: Reference, 2: Option name, 3: Callback function to sanitize the data
register_setting( 'reference_name', 'option_name', 'example_callback' );

Então, onde quer que você imprima seus vários campos de opções, você só precisa imprimir um nonce que cubra o lote.

settings_fields( 'reference_name' ); 

Se você registrou várias seções e campos, também teria que fazer isso para cada uma das seções registradas.

do_settings_sections('your_section');

Realmente, o único aspecto importante da configuração de opções personalizadas é certificar-se de definir seu próprio retorno de chamada ao registrar as configurações e higienizar adequadamente esses dados (terceiro parâmetro para register_setting).

3
t31os