Hacer un Panel de Opciones para un Theme
Tomando la base del theme Mimbo, uno de los mas populares themes gratuitos de estilo revista, vamos a ver como configurarlo para que tenga un panel de opciones desde el que configurar varias personalizaciones sin tener que tocar el código a posteriori.
Aunque se toma como ejemplo la estructura de Mimbo se puede aplicar, y trasladar a cualquier theme de tu elección.
1 – Creando el fichero functions.php
Busca en la carpeta de tu theme el archivo ‘functions.php‘, y si no estuviera créalo para poder empezar esta tarea. Lo creas en blanco para incluir el código del siguiente paso.2 – Creando la función de inicialización
La siguiente función, que incluiremos en el fichero ‘functions.php’ inicializa todas las variables en caso de que no exista un valor definido (se ejecuta primero en el panel de opciones)PHP:
- function mimic_init() {
- // add_option(’variable name’,’default value’
- // Categoría a mostrar en el menú superior //
- add_option(‘mimic_menu_cat’, ‘1,2,3?);
- // Categoría de destacados//
- add_option(‘mimic_featured_cat’, 0);
- }
3 – Creando la función que obtiene/guarda los datos
Aquí se establecen las variables con los datos guardados y donde deben guardarse…PHP:
- function mimic_add_theme_page()
- {
- // si las variables están vacías llamamos a la función mimic_init para establecer los valores por defecto
- if((get_option(‘mimic_featured_cat’) == ”)||(get_option(‘mimic_menu_cat’) == ”))
- {mimic_init();}
- //si el formulario se envia guardamos los cambios
- if ( ’save’ == $_REQUEST[‘action’] )
- {
- //—–
- {update_option(‘mimic_featured_cat’, $_REQUEST[‘mimic_featured_cat’]);}
- else
- {update_option(‘mimic_featured_cat’, ‘Fill this field please’);}
- {update_option(‘mimic_menu_cat’, $_REQUEST[‘mimic_menu_cat’]);}
- else
- {update_option(‘mimic_menu_cat’, ‘Fill this field please’);}
- }
- // Agrega la cabecera (css + script) al panel de opciones
- add_action(‘admin_head’, ‘mimic_theme_page_head’);}
- //add_menu_page(page_title, menu_title, access_level/capability,file,[function]);
- add_theme_page(‘Opciones del Theme’, ‘Opciones del Theme’, ‘edit_themes’, basename(__FILE__), ‘mimic_theme_page’);
- }
4 – Creando el formulario y la cabecera
Aquí diseñamos el formulario …Código para el formulario
PHP:
Esta función crea el formulario para entrar los valores personalizados- function mimic_theme_page()
- {
- if ( $_REQUEST[‘saved’] ) echo ‘<div id=”message” class=”updated fade”><p><strong>Options Saved</strong></p></div>’;
- ?>
- <div class=“wrap”>
- <div id=“mimic”>
- <h2>Opciones del Theme</h2>
- <form name=“mimic” method=“post” action=“<?php $_SERVER[‘REQUEST_URI’]; ?>”>
- <input type=“hidden” name=“action” value=“save” />
- <table class=“optiontable”>
- <tbody>
- <tr>
- <th>IDs de categoría del <em>menú de navegación</em>:</th>
- <td><input name=“mimic_menu_cat” id=“mimic_menu_cat” type=“text” class=“code” value=“<?php echo get_option(’mimic_menu_cat’); ?/>” /><br /></td>
- </tr>
- <tr>
- <th>ID de la categoría de destacados :</th>
- <td><input name=“mimic_featured_cat” id=“mimic_featured_cat” type=“text” class=“code” value=“<?php echo get_option(’mimic_featured_cat’); ?/>” /><br /></td>
- </tr>
- </tbody>
- </table>
- <p class=“submit”><input type=“submit” name=“Guardar” value=“Aplicar »” /></p>
- </form>
- </div>
- </div>
- <?php }?
Código para la Cabecera
PHP:
Ya casi hemos terminado, ahora solo queda una cosa por hacer, tenemos que conseguir los valores Guardados en nuestro theme.- function mimic_theme_page_head()
- { // header Css+Script …?>
- <style type=“text/css”>
- p {margin-left:4px;}
- #mimic {margin:5px;padding:10px;}
- </style>
- <?php}
5 – Editando tu archivo index.php (o el que quieras)
Aquí es donde sucede la magia Simplemente añade este pequeño código en tu fichero index.php
PHP: - <?php
- /* Obteniendo los valores de opcioness*/
- /* Obteniendo el ID de la categoría de destacados */
- $fcat = get_option(‘mimic_featured_cat’);
- ?>
El siguiente código es específico para el theme mimbo pero también otros themes usan la misma función para mostrar posts, así que puedes adaptarlo a tu propio theme.
En mimbo este código sirve para mostrar el último post de la categoría de destacados.
PHP: - query_posts(’showposts=1&cat=1?);
remplázalo por este otro código
PHP: - query_posts(’showposts=1&cat=’.$fcat);
remplaza también esta línea
PHP: - wp_list_categories(‘include=1&title_li=&style=none’); ?>
por
PHP: - wp_list_categories(‘include=’.$fcat.‘&title_li=&style=none’); ?>
y eso es todo, ahora puedes gestionar tu theme desde el panel de administración.
- <?php
- /* Obteniendo los valores de opcioness*/
- /* Obteniendo el ID de la categoría de destacados */
- $fcat = get_option(‘mimic_featured_cat’);
- ?>
- query_posts(’showposts=1&cat=1?);
- query_posts(’showposts=1&cat=’.$fcat);
- wp_list_categories(‘include=1&title_li=&style=none’); ?>
- wp_list_categories(‘include=’.$fcat.‘&title_li=&style=none’); ?>
No hay comentarios:
Publicar un comentario