<?php /* Plugin Name: Destacado Plugin URI: http://intelisen.com/plugins Description: Destacar una lista de palabras clave Author: Juanpablito Version: 1 Author URI: http://intelisen.com */ //$lista = "cocina,bravas,tapas,restaurante"; add_action('wp_head', 'estilos'); function estilos() { $color = destacar_get_color(); ?> <style> .pg_destacado{ font-weight: bold; background-color: <?= $color ?>; } </style> <?php } add_filter('the_content', 'destacar'); add_filter('the_excerpt', 'destacar'); function destacar($contenido) { $palabras = destacar_get_palabras(); foreach ($palabras as $palabra) { $contenido = str_ireplace($palabra, "<span class=pg_destacado>" . $palabra . "</span>", $contenido); } return $contenido; } function destacar_get_palabras() { return explode(",", get_option("destacar_palabras")); } function destacar_get_color() { $color = get_option('destacar_color'); $color = empty($color) ? 'yellow' : $color; return $color; } //Necesarios para crear un menú y registrar los campos add_action('admin_menu', 'destacar_menu'); add_action('admin_init', 'destacar_settings'); //Registra el campo que vamos a guardar function destacar_settings() { register_setting('destacar-group', 'destacar_palabras'); register_setting('destacar-group', 'destacar_color'); } //Son las opciones que tendrá nuestro menú. Los parámetros son: título de la página, título del menú, quien puede acceder, url de esta página y función a la que se llama function destacar_menu() { add_options_page('Opciones destacar', 'Destacar', 'manage_options', 'destacar-identifier', 'destacar_options'); } //Formulario que se mostrará cuando se seleccione el menú function destacar_options() { if (!current_user_can('manage_options')) { wp_die('No tiene permiso.'); } ?> <div> <?php screen_icon(); ?> <h2>Opciones destacar</h2> <form method="post" action="options.php"> <?php settings_fields('destacar-group'); do_settings_fields('destacar-group', ''); $color = destacar_get_color(); ?> <p>Introduzca las palabras a destacar separadas por comas</p> <input size="70" type="text" name="destacar_palabras" value="<?php echo get_option('destacar_palabras'); ?>" /> <p>Elija el color destacado</p> <input type="radio" name="destacar_color" value="yellow" <?= $color == 'yellow' ? 'checked' : '' ?>>Amarillo <input type="radio" name="destacar_color" value="lightgreen"<?= $color == 'lightgreen' ? 'checked' : '' ?>>Verde <?php submit_button(); ?> </form> </div> <?php }