2009-07-09 20 views
5

Parece que hay un error en una función de Wordpress PHP que deja espacios en blanco delante del título de la página generada por <?php echo wp_title(''); ?> He estado en los documentos y foros de WordPress sin ninguna suerte.Recortar el espacio en blanco líder con PHP?

Lo estoy usando de esta manera <body id="<?php echo wp_title(''); ?>"> para generar una etiqueta de cuerpo HTML con el id del título de la página.

Entonces, ¿qué tengo que hacer es que el espacio franja blanca, por lo que el cuerpo de la etiqueta se parece a esto <body id="mypage"> en lugar de esta <body id=" mypage">

El espacio en blanco adicional mata al CSS Estoy tratando de utilizar para resaltar los elementos del menú de la página activa. Cuando agrego manualmente una etiqueta corporal correcta sin el espacio en blanco, mi CSS funciona.

Entonces, ¿cómo puedo quitar el espacio en blanco? Gracias, Mark


la segunda parte de la Epopeya

John, un volcado hexadecimal era una buena idea; muestra el espacio en blanco como dos espacios "20". Pero todas las soluciones que despojan espacios principales y espacios en blanco no lo hicieron.

Y, <?php ob_start(); $title = wp_title(''); ob_end_clean(); echo $title; ?>

me da < body id ="">

y <?php ob_start(); $title = wp_title(''); echo $title; ?>

me da < body id =" mypage">

rompecabezas. La raíz del problema es que wp_title tiene caracteres principales de título de página opcionales, que se ven como galones, que se supone que se descartan cuando la opción es falsa, y lo son, pero se vacía el espacio en blanco.

¿Hay alguna opción nuclear?


Yup, los probé antes; todavía devuelven dos espacios principales ...Arrgg

Respuesta

36
  1. Strip todos los espacios en blanco desde el extremo izquierdo del título:

    <?php echo ltrim(wp_title('')); ?> 
    
  2. Strip todos los espacios en blanco de cualquier extremo:

    <?php echo trim(wp_title('')); ?> 
    
  3. Strip todos los espacios del extremo izquierdo del título:

    <?php echo ltrim(wp_title(''), ' '); ?> 
    
  4. quitar el primer espacio, incluso si no es el primer personaje:

    <?php echo str_replace(' ', '', wp_title(''), 1); ?> 
    
  5. de Gaza sólo un único espacio (no de nueva línea, no tab) al principio:

    <?php echo preg_replace('/^ /', '', wp_title('')); ?> 
    
  6. Pele el primer carácter, cualquiera que sea:

    <?php echo substr(wp_title(''), 1); ?> 
    

actualización

Desde el Wordpress documentation on wp_title, parece que wp_title muestra el mismo título a menos que pase false para el segundo parámetro, en cuyo caso se devuelve. Así que trate de:

<?php echo trim(wp_title('', false)); ?> 
+2

Definitivamente obtienes el premio por alcance y variedad, y todos deberían funcionar. Pero algo es raro con la función Wordpress y todavía tengo espacio en blanco. Firebug lo muestra como espacio en blanco, no como cualquier tipo de personaje ... – markratledge

+0

¡La segunda parte de la épica está añadida a mi pregunta original! – markratledge

+0

Lo intenté antes; todavía devuelven dos espacios principales ... arrg. – markratledge

1

Sólo para tirar un poco de variedad aquí: trim

<body id="<?=trim(wp_title('', false));?>"> 
1

Gracias por esta información! Estaba en el mismo barco en el que necesitaba generar identificaciones de página para propósitos de CSS basadas en el título de la página y la solución anterior funcionó maravillosamente.

llegó a tener un obstáculo adicional en el que algunas páginas tienen títulos con espacios incrustados, por lo que terminó la codificación de esta:

<?php echo str_replace(' ','-',trim(wp_title('',false))); ?> 
0

agregar esto a su functions.php

add_filter('wp_title', create_function('$a, $b','return str_replace(" $b ","",$a);'), 10, 2); 

debe trabaja como un encanto

Cuestiones relacionadas