¿Cuál es la diferencia entre las Opciones y la Configuración?

12

¿Y cuál debo usar?

¿Cuál es la diferencia entre API de Opciones y Configuraciones API ?

Tengo un tema con más de 100 opciones de administración, ¿cómo debo registrarme & almacenarlos? En este momento estoy usando API de Opciones pero no estoy muy contento con eso, cada opción individual se registra por separado para que crear una gran cantidad de consultas de base de datos.

Veo tres formas de almacenar las opciones / configuraciones de WordPress en este momento:

1. API de opciones: la forma antigua (¿la peor?).

(Ya estoy 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>

Y luego en la parte delantera:

echo get_option('option1'); 

Parece feo y no creo que esa sea la manera correcta de almacenar una gran cantidad de opciones (me encantaría agruparlas de alguna manera).

2. Opciones API - 1 opción como una gran matriz.

No estoy seguro de cómo actualizar esta matriz mediante formularios html, ¿alguien? Creo que debería ir como:

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

update_option('theme_settings',$opt);

Y luego al final:

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

He escuchado que realmente disminuye la cantidad de consultas y las tengo todas como una opción. Me encantaría usar este pero, como mencioné anteriormente, no estoy seguro de cómo actualizar este conjunto de opciones en el formulario de administración de Wordpress. Supongo que: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." /> sobrescribirá la matriz en lugar de agregar nuevos elementos?

3. API de configuración: la nueva forma.

Requiere un montón de 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    
};

¿Y no estoy seguro de cuál es la diferencia entre esto y el método con una opción como una matriz?

tl; dr Entonces, ¿cómo debo proyectar el almacenamiento de mi configuración de tema para que funcione rápido y almacene todas las opciones / configuraciones en un solo lugar , por lo que podré, por ejemplo, hacerles un eco / volcarlos a todos con una función simple (sí, quiero hacerlo mal, pero no tengo idea de cómo hacerlo con esta configuración API). El segundo método parece el mejor hasta ahora.

    
pregunta Wordpressor 02.02.2012 - 01:28

1 respuesta

10

La API de opciones es principalmente una API de base de datos, lo que le permite obtener y almacenar valores en la tabla de opciones de la base de datos fácilmente.

La API de configuración es una API de interfaz. Le permite crear pantallas de configuración de una manera que se adaptará a los cambios futuros en la interfaz de WordPress, así como para manejar la seguridad (nonces y listas blancas y validación, entre otros) de forma automática y más sencilla que el código rodante de su propio código.

Más sobre la API de configuración: enlace

    
respondido por el Otto 02.02.2012 - 03:44

Lea otras preguntas en las etiquetas