<?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
}