Każdy temat założony w ewidentnie złym dziale będzie usuwany! Proszę czytać opisy działów i regulamin!
![]() ![]() |
13.8.2008 - 19:30
Post
#1
|
|
|
aktywność: ![]() Grupa: Bloger Postów: 10 Nr: 3 945 |
Witam ponownie,
W theme mojej strony jest pewien fragment w którym losowo zmieniane są obrazki. Do tego celu użyłem skryptu znalezionego w internecie: KOD <?php #tablica zawierająca nazwy plików - obrazków $obrazki = array("a.jpg", "b.jpg", "c.jpg", "d.jpg", "e.jpg"); #inicjujemy generator licz losowych srand ((float) microtime() * 10000000); #wybieramy jeden losowy obrazek z tablicy $obrazek = $obrazki[array_rand($obrazki)]; #wyświetlamy losowy obrazek echo "<img src=$obrazek>"; ?> jako ścieżkę do obrazków podałem: KOD echo "<img src=wp-content/themes/aquarium-10/img/$obrazek>"; Wiem, że nie powinno się tak robić, ale ta metoda działała. No właśnie działała do momentu, aż postanowiłem "upiększyć" swoje linki z domyślnych: KOD http://xxxxxxxxx.pl/?p=123 ustawiłem na: KOD http://xxxxxxxxx.pl/2008/08/13/sample-post/ I od tej pory wszystko zaczęło się sypać. Obrazki nie wyświetlały się, podejrzałem linki do nich prowadzące i wyglądały one tak: KOD http://xxxxxxxxx.pl/2008/08/13/sample-post/wp-content/themes/aquarium-10/img/$obrazek Znalazłem w header.php permalink do mojego folderu stylu. KOD <?php bloginfo('stylesheet_directory'); ?> i postanowiłem zmodyfikować kod dodając odpowiednio linijki: KOD <?php #tablica zawierająca nazwy plików - obrazków $obrazki = array("a.jpg", "b.jpg", "c.jpg", "d.jpg", "e.jpg"); $dir = bloginfo('stylesheet_directory'); #inicjujemy generator licz losowych srand ((float) microtime() * 10000000); #wybieramy jeden losowy obrazek z tablicy $obrazek = $obrazki[array_rand($obrazki)]; #wyświetlamy losowy obrazek echo "<img src=$dir/img/$obrazek>"; ?> I problem nadal występuje, tzn obrazek się nie wyświetla a jego link wygląda następująco: KOD http://xxxxxxxxx.pl/img/$obrazek a więc nie działa mi ten permalink, co więc źle robię. Może to problem z kodem ? Proszę o pomoc. Ten post edytował komoorki 13.8.2008 - 19:31 |
|
|
|
14.8.2008 - 09:42
Post
#2
|
|
|
aktywność: ![]() ![]() ![]() ![]() ![]() Grupa: Redakcja Postów: 354 Nr: 2 655 |
Permalink Ci się nie wyświetla dlatego że nie możesz sobie tak poprostu przypisać funkcji do zmiennej.
Masz dwie opcje w takim wypadku: 1) zajrzeć do kodu funkcji bloginfo i zobaczyć z czego ona wyciąga te dane i przegryźć się przez kilka innych funkcji i dojść do jakiegoś zapytania albo funkcji która zwraca Ci wartość returnem a nie przez echo. Może get_bloginfo() ? 2) wrzucić do bufora to co zwraca funkcja i przypisać bufor do zmiennej. Boję się że mnie ktoś posądzi o nieprofesjonalizm ale zaryzykuję i zamieszczę kawałek kodu (poprawiłem też Ciapki w Twoim kodzie bo przydałoby się żeby znacznik img miał składnię <img src="">): KOD <? $obrazki = array("a.jpg", "b.jpg", "c.jpg", "d.jpg", "e.jpg"); //tablica plikow ob_start(); //start buforowania funkji bloginfo('stylesheet_directory'); //funkcja ktora chcemy wrzucic do zmiennej $bufferContent = ob_get_contents(); //przypisanie bufora do zmiennej ob_end_clean(); //koniec buforowania funkcji srand ((float) microtime() * 10000000); //?? $obrazek = $obrazki[array_rand($obrazki)]; //?? 0o" echo '<img src="'.$bufferContent.'/img/'.$obrazek.'">'; //wyswietla grafike ?> Pozdrawiam -------------------- masz problem z "Warning: Cannot modify header information - headers already sent by" ?? W 99.9% przypadków chodzi o BOM. Więcej --> http://www.wordpress.org.pl/bl%B1d-pod-cza...acji-t4763.html albo http://www.wordpress.org.pl/search/
|
|
|
|
14.8.2008 - 17:44
Post
#3
|
|
|
aktywność: ![]() Grupa: Bloger Postów: 10 Nr: 3 945 |
szacunek, działa! Wielkie dzięki!
|
|
|
|
![]() ![]() |
| Wersja Lo-Fi | Aktualny czas: 4 12 08 - 17:32 |