Título y lema del sitio en la página de opciones de tema

4

Estoy usando Tema del marco de opciones para armar una página de opciones . El (los) usuario (s) para quien estoy creando esto le gustaría poder editar algunas configuraciones directamente desde esta página, entre ellas, Título del sitio y Lema .

Concepto:

Options.php:

$options[] = array(
    'name' => __('Site Title', 'options_framework_theme'),
    'desc' => __('The name of your site.', 'options_framework_theme'),
    'id' => 'title',
    'std' => 'PHP CODE FOR SITE TITLE HERE ...',
    'class' => 'medium',
    'type' => 'text');

¿Hay alguna forma de hacer esto (agregue su propio Título del sitio y Taglines ) dentro de un campo de texto, por ejemplo, haga clic en el botón Guardar opciones para enviarlo a la parte frontal del sitio y muestra una versión actualizada en la configuración de la API de WP > ¿Página de submenú de configuración general?

    
pregunta user1752759 25.12.2012 - 18:21

1 respuesta

3

El marco ofrece un filtro para validar los valores de entrada dentro de la función optionsframework_validate .
Solo como referencia, aquí está la parte relevante del archivo wp-content/themes/your-theme/inc/options-framework.php :

/**
 * Validate Options.
 *
 * This runs after the submit/reset button has been clicked and
 * validates the inputs.
 */
function optionsframework_validate( $input ) {
/* code */
    $clean[$id] = apply_filters( 'of_sanitize_' . $option['type'], $input[$id], $option );
/* code */

Entonces, considerando que tenemos las siguientes opciones en el archivo wp-content/themes/your-theme/options.php :

$options[] = array(
    'name' => __('Input Text Mini', 'options_framework_theme'),
    'desc' => __('A mini text input field.', 'options_framework_theme'),
    'id' => 'blogname',
    'std' => 'Default',
    'class' => 'mini',
    'type' => 'text');

$options[] = array(
    'name' => __('Input Text', 'options_framework_theme'),
    'desc' => __('A text input field.', 'options_framework_theme'),
    'id' => 'blogdescription',
    'std' => 'Default Value',
    'type' => 'text');

Y en wp-content/themes/your-theme/functions.php , filtramos el tipo de entrada text ( of_sanitize_ + text ) y si coincide con nuestros ID definidos ( blogname y blogdescription , al igual que en la Configuración general), actualizará las opciones del sitio que tienen el mismo ID.

Tenga en cuenta que esto no funciona al revés: los cambios realizados en Settings -> General no se reflejarán en la página de opciones del tema ...

add_filter( 'of_sanitize_text', 'wpse_77233_framework_to_settings', 10, 2 );

function wpse_77233_framework_to_settings( $input, $option )
{
    if( 'blogname' == $option['id'] )
        update_option( 'blogname', sanitize_text_field( $input ) );

    if( 'blogdescription' == $option['id'] )
        update_option( 'blogdescription', sanitize_text_field( $input ) );

    return $input;
}
    
respondido por el brasofilo 25.12.2012 - 20:08

Lea otras preguntas en las etiquetas