2009-07-09 5 views
5

Wygląda na to, że błąd w funkcji PHP Wordpressa pozostawia białe spacje przed tytułem strony wygenerowanej przez <?php echo wp_title(''); ?> Przeszedłem przez dokumenty Wordpress i fora na tej funkcji bez żadnego szczęścia.Przycinanie wiodącej białej przestrzeni za pomocą PHP?

Używam go w ten sposób <body id="<?php echo wp_title(''); ?>"> w celu wygenerowania znacznika HTML z identyfikatorem strony tytułowej.

Więc co muszę zrobić, to taśma ta biała przestrzeń, tak że znacznik ciało wygląda tak <body id="mypage"> zamiast tego <body id=" mypage">

dodatkowej białej przestrzeni zabija CSS próbuję użyć aby podświetlić pozycje menu aktywnej strony. Kiedy ręcznie dodaję prawidłową treść bez białego spacji, mój CSS działa.

Jak mogę usunąć biały obszar? Dzięki, Mark


Część druga z Epic

Jana, A hex zrzut był dobry pomysł; pokazuje białą przestrzeń jako dwie "20" spacji. Ale wszystkie rozwiązania, które usuwają wiodące przestrzenie i białą przestrzeń, nie były.

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

daje mi < body id ="">

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

daje mi < body id =" mypage">

logiczne. Przyczyną problemu jest to, że wp_title ma opcjonalne tytuły wiodących tytułów stron - które wyglądają jak szewrony - które powinny zostać usunięte, gdy opcja jest fałszywa, i są, ale biała przestrzeń zostaje zrzucona.

Czy istnieje opcja jądrowa?


Tak, wypróbowałem je wcześniej; wciąż zwracają dwie wiodące spacje ...arrgg

Odpowiedz

36
  1. obranie odstępy od lewego końca tytułem:

    <?php echo ltrim(wp_title('')); ?> 
    
  2. obranie odstępy od obu końców:

    <?php echo trim(wp_title('')); ?> 
    
  3. taśmy wszystkie przedziały od lewego końca tytułu:

    <?php echo ltrim(wp_title(''), ' '); ?> 
    
  4. Usuń pierwszego miejsca, nawet jeśli nie jest to pierwszy znak:

    <?php echo str_replace(' ', '', wp_title(''), 1); ?> 
    
  5. Strip tylko jedna przestrzeń (nie nowej linii, a nie karta) na początku:

    <?php echo preg_replace('/^ /', '', wp_title('')); ?> 
    
  6. Usunięcie pierwszego znaku, niezależnie od tego, czym jest:

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

Aktualizacja

Z Wordpress documentation on wp_title że wp_title Wyświetla tytuł Sam chyba zdać false dla drugiego parametru, w którym to przypadku zwraca go. Więc spróbuj:

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

Zdecydowanie dostaniesz nagrodę za zakres i różnorodność, a one wszystkie powinny działać. Ale coś jest nie tak z funkcją Wordpress i wciąż mam białe spacje. Firebug pokazuje to jako białą przestrzeń, a nie jakąś postać ... – markratledge

+0

Część druga Eposu jest wklejona na moje oryginalne pytanie! – markratledge

+0

Wypróbowałem je wcześniej; nadal zwracają dwie wiodące spacje .... arrg. – markratledge

1

Wystarczy rzucić w jakiejś odmiany tutaj: trim

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

Dzięki tej informacji! Byłem w tej samej łodzi, w której potrzebowałem generować identyfikatory stron do celów CSS na podstawie tytułu strony, a powyższe rozwiązanie działało pięknie.

skończyło się dodatkową przeszkodę w że niektóre strony mają tytuły ze spacjami, więc skończyło się na kodowanie to:

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

dodać do swojej functions.php

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

powinien działa jak wdzięk