Qual é a diferença entre opções e configurações?

12

E qual deles devo usar?

Qual é a diferença entre a API de opções e API de ajustes ?

Eu tenho um tema com mais de 100 opções de administrador, como devo registrar & armazená-los? No momento, estou usando a API de opções , mas não estou muito feliz com isso, cada opção está sendo registrada separadamente para que criar muitas consultas ao banco de dados.

Eu vejo três maneiras de armazenar as opções / configurações do WordPress no momento:

1. API de opções - a maneira antiga (a pior?).

(Eu já estou usando este)

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>        

// all the inputs

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="option1,option2,option3,..." />
<p class="submit">
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>

E então no front end:

echo get_option('option1'); 

Parece feio e não acho que seja o jeito certo de armazenar um grande número de opções (eu adoraria agrupá-las de alguma forma).

2. API de opções - 1 opção como uma matriz grande.

Não tenho certeza aqui como atualizar esse array usando formulários html, alguém? Eu acredito que deveria ser como:

$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar

update_option('theme_settings',$opt);

E depois no front end:

$settings = get_option('theme_settings');
echo $settings['option1']; 
echo $settings['option2']; 
echo $settings['option3']; 

Eu ouvi que realmente diminui o número de consultas e eu tenho todas elas como uma opção. Eu adoraria usar este, mas como mencionei acima, não sei como atualizar essa matriz de opções dentro do formulário de administração do Wordpress. Eu acho: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." /> irá sobrescrever a matriz em vez de adicionar novos elementos?

3. API de configurações - a nova maneira.

Requer muito código adicional:

function register_theme_settings() {
    //register our settings   
    register_setting( 'theme-settings', 'option1' );     
    register_setting( 'theme-settings', 'option2' );     
    register_setting( 'theme-settings', 'option3' );     
    register_setting( 'theme-settings', 'option4' );     
    register_setting( 'theme-settings', 'option5' );     
    // imagine this for 100 and more options    
};

E eu não tenho certeza qual é a diferença entre este e o método com uma opção como matriz?

tl; dr Então, como eu devo projetar o armazenamento das configurações do meu tema para que ele esteja funcionando rápido e armazene todas as opções / configurações em um só lugar então poderei, por exemplo, ecoar / descarregar todos eles com uma função simples (sim, eu quero fazer isso mal, mas não tenho idéia de como fazer isso com isto API). O segundo método parece o melhor até agora.

    
por Wordpressor 02.02.2012 / 01:28

1 resposta

10

A API Options é basicamente uma API de banco de dados, permitindo que você obtenha e armazene valores facilmente na tabela de opções do banco de dados.

A API de configurações é uma API de interface. Ele permite que você construa telas de configurações de uma maneira que se adapte às mudanças futuras na interface do WordPress, bem como lide com segurança (nonces e whitelisting e validação e outras) automaticamente e mais facilmente do que rolando seu próprio código. / p>

Mais sobre a API de configurações: enlace

    
por Otto 02.02.2012 / 03:44