Estoy usando wordpress como CMS y estoy tratando de permitir que los campos de los usuarios ingresen para llenar las ventanas de información en un script de Google Map. Estoy usando esto para seleccionar la identificación y obtener el contenido de un campo personalizado.¿Cómo eliminar los retornos de carro de la salida de la cadena?
Funciona bien a menos que haya algún html en el campo personalizado que rompa la secuencia de comandos.
Miré htmlspcialchar y htmlentities pero en lugar de quitar todo me gustaría tenerlo escapado para que todavía funcione y el html esté intacto. ¿Alguna sugerencia? Soy bastante nuevo en PHP y realmente apreciaría cualquier apuntador.
Después de un tiempo sigo sin poder encontrar una buena solución para esto. TheDeadMedic sugirió que use esc_js
, pero eso imprimió todo el código html real en lugar de representarlo.
Gracias a los nickfs, ya que esa solución era un poco mejor, pero el script aún se rompe si hay retornos de carro en la salida, lo que hace que esto no sea tan bueno para un CMS.
Otra cosa que intenté fue utilizar la función de recorte ... aquí es donde estoy ahora donde funciona, siempre y cuando no haya salida en la salida. La cadena de recorte $, mapExcerpt campo es donde los rendimientos son procedentes de:
<?php $post_id = 207; // Wordpress Post ID
$my_post = get_post($post_id);
$mapTitle = $my_post->post_title;
$mapIMG = get_post_meta($post_id, 'mapImage', true);
$snip = get_post_meta($post_id, 'mapExcerpt', true);
$lat = get_post_meta($post_id, 'lat', true);
$long = get_post_meta($post_id, 'long', true);
$pass_to = '<div class="span-8"><div class="mapTitle">'.$mapTitle.'</div><div class="mapContent">'.$snip.'</div></div>';
$trimmed = trim($pass_to, " \r.");
?>
var point = new GLatLng('<?php echo $lat; $lat; ?>','<?php echo $long; $long; ?>');
var marker = createMarker(point,"<?php echo $mapTitle; $mapTitle; ?>", '<?php echo addslashes($trimmed); ?>');
map.addOverlay(marker);
Cualquier otra idea por ahí sobre cómo puedo sacar esto adelante?
¿Por qué habría HTML en el campo personalizado? – Tom
@Tom Para controlar el diseño, los enlaces, etc. – Zac
¿Por qué no simplemente configurar un campo personalizado llamado 'ubicación' donde solo pueden ingresar ese lat/long y definir una serie de otros campos personalizados para enlaces, diseño, etc.? – Tom