Categorías: Sin categoría

MANUAL DE INSTALACION Y USO DE OPTIONS FRAMEWORK EN WORDPRESS?

Options Frameword como su nombre lo indica, es un framework que facilita la programacion de wordpress. en este tutorial instalaremos el framework en un wordpress nuevo.
Pasos a seguir:
1.- nos vamos a Añadir pluging y buscamos “Options Framework” y lo instalamos y activamos

2.- Descargamos este archivo a cualquier parte de nuestro servidor (o maquina local),lo descomprimimos y copiamos el archivo llamado “options-framework-plugin-master/options.php” y lo pegamos en la carpeta de thema que vamos a usar en este caso “wp-content/themes/twentyseventeen”

3.- Por default aparecera un nuevo menu llamado “Opciones del Tema” con algunos campos diferentes tipos los cuales podremos cambiar en el archivo que movimos en el paso 2 osea
“options-framework-plugin-master/options.php”

4.- Editamos el archivo “wp-content/themes/twentyseventeen/options.php” para agregar y quitar campos segun los necesitesmos.

Ejemplo de options.php

<?php
function optionsframework_option_name() {
// Cambia esto para cambiar el slug
return 'options-framework-theme';
}
function optionsframework_options() {
$options = array();
//Colocamos una tab (Todo los elementos que esten abajo le perteneceran a este tab)
$options[] = array(
'name' => __( 'Tab 1 Basico', 'theme-textdomain' ),
'type' => 'heading'
);
//Colocamos un input text de tamaño pequeño
$options[] = array(
'name' => __( 'Titulo Input Text', 'theme-textdomain' ),
'desc' => __( 'Descripcion text field de tamaño pequeño.', 'theme-textdomain' ),
'id' => 'mini_text_field',
'std' => 'Valor default',
'class' => 'mini',
'type' => 'text'
);
//Colocamos un input text de tamaño normal
$options[] = array(
'name' => __( 'Titulo Input Text', 'theme-textdomain' ),
'desc' => __( 'Descripcion text field de tamaño regular.', 'theme-textdomain' ),
'id' => 'regular_text_field',
'std' => 'Valor default',
'type' => 'text'
);
//Colocamos un Textarea
$options[] = array(
'name' => __( 'Titulo Textarea', 'theme-textdomain' ),
'desc' => __( 'Descripcion Textarea.', 'theme-textdomain' ),
'id' => 'textarea',
'std' => 'Valor default',
'type' => 'textarea'
);
//Colocamos un select
$options[] = array(
'name' => __( 'Titulo Select pequeño', 'theme-textdomain' ),
'desc' => __( 'Descripcion Select pequeño.', 'theme-textdomain' ),
'id' => 'select',
'std' => 'tres',
'type' => 'select',
'class' => 'mini', //mini, tiny, small
'options' => array(
'uno' => __( 'Uno', 'theme-textdomain' ),
'dos' => __( 'Dos', 'theme-textdomain' ),
'tres' => __( 'Tres', 'theme-textdomain' ),
'cuatro' => __( 'Cuatro', 'theme-textdomain' ),
'cinco' => __( 'Cinco', 'theme-textdomain' )
)
);
//Colocamos un select ancho
$options[] = array(
'name' => __( 'Titulo Select ancho', 'theme-textdomain' ),
'desc' => __( 'Descripcion select ancho.', 'theme-textdomain' ),
'id' => 'select_ancho',
'std' => 'two',
'type' => 'select',
'options' => array(
'uno' => __( 'Uno', 'theme-textdomain' ),
'dos' => __( 'Dos', 'theme-textdomain' ),
'tres' => __( 'Tres', 'theme-textdomain' ),
'cuatro' => __( 'Cuatro', 'theme-textdomain' ),
'cinco' => __( 'Cinco', 'theme-textdomain' )
)
);
//Ponemos todas las categorias en un array
$options_categories = array();
$options_categories_obj = get_categories();
foreach ($options_categories_obj as $category) {
$options_categories[$category->cat_ID] = $category->cat_name;
}
//Si hay categorias las colocamos en un select
if ( $options_categories ) {
$options[] = array(
'name' => __( 'Select a Category', 'theme-textdomain' ),
'desc' => __( 'Passed an array of categories with cat_ID and cat_name', 'theme-textdomain' ),
'id' => 'select_categories',
'type' => 'select',
'options' => $options_categories
);
}
//Hacemos un select de radiobuttons
$options[] = array(
'name' => __( 'Input Radio (dos)', 'theme-textdomain' ),
'desc' => __( 'Radio select seleccionado default "dos".', 'theme-textdomain' ),
'id' => 'radio',
'std' => 'dos',
'type' => 'radio',
'options' => array(
'uno' => __( 'Uno', 'theme-textdomain' ),
'dos' => __( 'Dos', 'theme-textdomain' ),
'tres' => __( 'Tres', 'theme-textdomain' ),
'cuatro' => __( 'Cuatro', 'theme-textdomain' ),
'cinco' => __( 'Cinco', 'theme-textdomain' )
)
);
//Area de informacion
$options[] = array(
'name' => __( 'Titulo de area de informacion', 'theme-textdomain' ),
'desc' => __( 'Descripcion de este es un ejemplo de una area de informacion que podemos poner en un panel.', 'theme-textdomain' ),
'type' => 'info'
);
//Ponemos un checkbox en true
$options[] = array(
'name' => __( 'Titulo Input Checkbox', 'theme-textdomain' ),
'desc' => __( 'Descripcion checkbox, default en true.', 'theme-textdomain' ),
'id' => 'checkbox',
'std' => '1',
'type' => 'checkbox'
);
//Creamos un nuevo tab
$options[] = array(
'name' => __( 'Tab 2 Avanzado', 'theme-textdomain' ),
'type' => 'heading'
);

//Boton para subir y guardar imagenes
$options[] = array(
'name' => __( 'Titulo: boton subir archivo', 'theme-textdomain' ),
'desc' => __( 'Descripcion: esto crea un cargador de tamaño completo que previsualiza la imagen.', 'theme-textdomain' ),
'id' => 'uploader',
'type' => 'upload'
);

//Path de las imagenes a usar en el selector de tipo imagen
$imagepath = get_template_directory_uri() . '/images/';
$options[] = array(
'name' => "Titulo Selector de imagenes",
'desc' => "Descripcion Selector de imagenes.",
'id' => "selector_imagenes",
'std' => "2c-l-fixed",
'type' => "images",
'options' => array(
'1col-fixed' => $imagepath . '1col.png',
'2c-l-fixed' => $imagepath . '2cl.png',
'2c-r-fixed' => $imagepath . '2cr.png'
)
);
//Selector de color
$options[] = array(
'name' => __( 'Titulo selector de color', 'theme-textdomain' ),
'desc' => __( 'Descripcion No hay ningun color seleccionado aun.', 'theme-textdomain' ),
'id' => 'colorpicker',
'std' => '',
'type' => 'color'
);
//Selector de tipografia
$options[] = array( 'name' => __( 'Titulo tipografia', 'theme-textdomain' ),
'desc' => __( 'Descripcion tipografia.', 'theme-textdomain' ),
'id' => "id_tipografia",
'std' => array(
'size' => '15px',
'face' => 'georgia',
'style' => 'bold',
'color' => '#bada55' ),
'type' => 'typography'
);
//Selector de tipografia personalizado
$options[] = array(
'name' => __( 'Titulo tipografia personalizada', 'theme-textdomain' ),
'desc' => __( 'Descripcion tipografia personalizada.', 'theme-textdomain' ),
'id' => "tipografia_perzonalizada",
'std' => array(
'size' => '15px',
'face' => 'georgia',
'style' => 'bold',
'color' => '#bada55' ),
'type' => 'typography',
'options' => array(
'sizes' => array( '6','12','14','16','20' ),
'faces' => array( 'Helvetica Neue' => 'Helvetica Neue','Arial' => 'Arial' ),
'styles' => array( 'normal' => 'Normal','bold' => 'Bold' ),
'color' => false
)
);
//Tab 3
$options[] = array(
'name' => __( 'Tab 3 Editor de texto', 'theme-textdomain' ),
'type' => 'heading'
);
//Editor de texto enriquezido tipo tinymce
$options[] = array(
'name' => __( 'Titulo editor de texto', 'theme-textdomain' ),
'desc' => sprintf( __( 'Descripcion editor de texto', 'theme-textdomain' ), 'http://codex.wordpress.org/Function_Reference/wp_editor' ),
'id' => 'example_editor',
'type' => 'editor',
'settings' => array(
'wpautop' => true, // Default
'textarea_rows' => 5,
'tinymce' => array( 'plugins' => 'wordpress,wplink' )
)
);


return $options;
}

Los datos que agreguemos se van ir guardando en un json en la tabla wp_options, para encontrar esos datos podemo realizar la siguiente busqueda:

SELECT * FROM wp_options WHERE option_name = 'optionsframework_twentyseventeen'
Para jalar esos datos en la plantilla debemos usar la funcion:
of_get_option('nombre_id', "Default");
Para ver todos los datos que acabamos de agregar podemos insertar este codigo en:
“wp-content/themes/twentyseventeen/footer.php”

<table>
<tr>
<td><?php echo "mini_text_field"; ?></td>
<td><?php echo of_get_option('mini_text_field'); ?></td> </tr>
<tr>
<td><?php echo "regular_text_field"; ?></td>
<td><?php echo of_get_option('regular_text_field'); ?></td>
</tr>
<tr>
<td><?php echo "textarea"; ?></td>
<td><?php echo of_get_option('textarea'); ?></td>
</tr>
<tr>
<td><?php echo "select"; ?></td>
<td><?php echo of_get_option('select'); ?></td>
</tr>
<tr>
<td><?php echo "select_ancho"; ?></td>
<td><?php echo of_get_option('select_ancho'); ?></td>
</tr>
<tr>
<td><?php echo "select_categories"; ?></td>
<td><?php echo of_get_option('select_categories'); ?></td>
</tr>
<tr>
<td><?php echo "radio"; ?></td>
<td><?php echo of_get_option('radio'); ?></td>
</tr>
<tr>
<td><?php echo "checkbox"; ?></td>
<td><?php echo of_get_option('checkbox'); ?></td>
</tr>
<tr>
<td><?php echo "uploader"; ?></td>
<td><?php echo of_get_option('uploader'); ?></td>
</tr>
<tr>
<td><?php echo "selector_imagenes"; ?></td>
<td><?php echo of_get_option('selector_imagenes'); ?></td>
</tr>
<tr>
<td><?php echo "colorpicker"; ?></td>
<td><?php echo of_get_option('colorpicker'); ?></td>
</tr>
<tr>
<td><?php echo "id_tipografia"; ?></td>
<td><?php var_dump (of_get_option('id_tipografia')); ?></td>
</tr>
<tr>
<td><?php echo "tipografia_perzonalizada"; ?></td>
<td><?php var_dump (of_get_option('tipografia_perzonalizada')); ?></td>
</tr>
<tr>
<td><?php echo "example_editor"; ?></td>
<td><?php echo of_get_option('example_editor'); ?></td>
</tr>
</table>

Eugenio Chaparro

Compartir
Publicado por
Eugenio Chaparro

Entradas recientes

🟢Editar código de un módulo en Dolibarr [04]

🟢Editar código de un módulo en Dolibarr [04]

En este tutorial vamos editar el código de nuestro módulo personas para poder personalizar algunas…

2 meses hace
🟢Crear un sub_módulo en Dolibarr [03]

🟢Crear un sub_módulo en Dolibarr [03]

En este tutorial vamos a crear un sub módulo llamado seguridad que será muy parecido…

2 meses hace
🟢Modificar un módulo en Dolibarr [02]

🟢Modificar un módulo en Dolibarr [02]

En este tutorial aprenderemos a editar el objeto personas del modulo persona que creamos en…

2 meses hace
🟢Constructor de módulos en Dolibarr

🟢Constructor de módulos en Dolibarr

Como mencionamos anteriormente Dolibarr es un proyecto realizado sobre la base de una política clara:…

2 meses hace
🟢Tickets en Dolibarr [19]

🟢Tickets en Dolibarr [19]

Los ticket en dolibarr nos ayudan a comunicar inconveniente en nuestros productos y servicios dentro…

2 meses hace
🟢Agenda en Dolibarr [18]

🟢Agenda en Dolibarr [18]

Las agendas en dolibarr nos ayudan a ver las actividades realizadas en proceso y por…

2 meses hace