Permitir HTML em opções do painel de administração

  • Autor Autor Fabián Rodríguez
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Fabián Rodríguez

Fabián Rodríguez

Lambda
Programador
Verificación en dos pasos activada
Hola Betas,
Estoy realizando un panel de administración para la gestión de publicidad de un tema para Wordpress de un cliente. Le he puesto cajas de texto (inputs y textarea) pero al parecer Wordpress limita los caracteres y no deja poner HTML del todo, por lo que si por ejemplo coloco el código de Adsense, este insertar caracteres especiales como "\" y no deja visualizar el banner de publicidad.

¿Alguna idea?
Para que sepan más o menos como estoy haciendo el panel de administración es de esta manera:


Inserir CODE, HTML ou PHP:
<?php
class ControlPanel {

	var $default_settings = array(
		'display_ads' => 1,
		'pub1' => '',
		'pub2' => '',
		'pub3' => '',
		'pub4' => '',
		'pub5' => '',
		'pub6' => '',
		'logo_path' => '/images/logo.png',
	);

	function __construct()
	{
		if (!is_array(get_option('jmdaily'))) add_option('jmdaily', $this->default_settings);

		$this->options = get_option('jmdaily');

		add_action('admin_menu', array(&$this, 'admin_menu'));
		add_action('admin_head', array(&$this, 'admin_head'));
	}

	function admin_menu()
	{
		add_theme_page('Panel de opciones del theme', 'Comarca Theme', 'edit_themes', "jmdaily", array(&$this, 'optionsmenu'));
	}

	function admin_head()
	{
		echo '<link rel="stylesheet" href="'.get_bloginfo('template_url').'/controlpanel.css" type="text/css" media="screen" />';
	}

	function optionsmenu()
	{
		if ($_POST['ss_action'] == 'save') {
			$this->options["display_ads"] = isset($_POST['cp_displayads']) ? 1 : 0;
			$this->options["pub1"] = $_POST['pub1'];
			$this->options["pub2"] = $_POST['pub2'];
			$this->options["pub3"] = $_POST['pub3'];
			$this->options["pub4"] = $_POST['pub4'];
			$this->options["pub5"] = $_POST['pub5'];
			$this->options["pub6"] = $_POST['pub6'];
			$this->options["logo_path"] = $_POST['cp_logopath'];
			update_option('jmdaily', $this->options);
			echo '<div class="updated fade" id="message" style="background-color: rgb(255, 251, 204); width: 300px; margin-left: 20px"><p>Settings <strong>saved</strong>.</p></div>';
		}

		echo '<h2>Comarca Theme Settings</h2>';
		echo '<form action="" method="POST" class="themeform">';
		echo '<input type="hidden" id="ss_action" name="ss_action" value="save">';
		echo '<hr/>';
		echo "<h4>Publicidad p&aacute;gina princial (index)</h4>";
		echo '<input type="checkbox" name="cp_displayads" id="cp_displayads"'.($this->options["display_ads"] == 1 ? ' checked' : '').' /><label style="margin-left: 5px;" for="cp_displayads">Mostrar anuncios</label><br />';
  
		echo 'Banner #1 header <input class="widefat" style="width: 165px;"  name="pub1" id="cp_pub1"  type="text "value="'.$this->options["pub1"].'"></textarea><br />';
		echo 'Banner #2 sidebar <input class="widefat" style="width: 165px;" name="pub2" id="cp_pub2" type="text" value="'.$this->options["pub2"].'" /><br />';
		echo 'Banner #3 sidebar <input class="widefat" style="width: 165px;" name="pub3" id="cp_pub3" type="text" value="'.$this->options["pub3"].'" /><br />';
		echo 'Banner #4 sidebar <input class="widefat" style="width: 165px;" name="pub4" id="cp_pub4"  type="text" value="'.$this->options["pub4"].'" /><br />';
		echo 'Banner #5 sidebar <input class="widefat" style="width: 165px;" name="pub5" id="cp_pub5" type="text" value="'.$this->options["pub5"].'" /><br />';
		echo 'Banner #6 sidebar <input class="widefat" style="width: 165px;" name="pub6" id="cp_pub6" type="text" value="'.$this->options["pub6"].'" /><br />';
		echo '<p class="submit"><input type="submit" value="Save Changes" name="cp_save"/></p>';
		echo '</form>';
	}
	
}
?>

Enlace eliminado
 
Última edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Fabián, es raro, pero hay temas que soportan código html, el que estoy usando ahora mismo lo soporta, por si quieres echarle un vistazo, se llama Mysthique, hay otros que también lo permiten, no recuerdo nombres ahora mismo, incluso hay un plugin para meter código adsense...
 
¿Y si cuando imprimes el HTML desde la base de datos reemplazas los caracteres "\"?

Un saludo.
 
Me respondo a mi mismo pero quedo con la duda. Tengo esta función que me permite caracteres especiales: wp_specialchars, pero de esta forma si por ejemplo coloco un código de Adsense se mostrará el código como tal y no el anuncio que es lo que necesito.

Tiene alguna forma especial de hacer esto que necesito? 😀
 
Voltar
Topo