Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> WORDPRESS PHP, Dostęp do funkcji i błąd niezdefiniowanej zmiennej
soliniak
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 8.08.2009

Ostrzeżenie: (0%)
-----


Dzień dobry,

Mam problem, mianowicie w moim szablonie wordpressa chciałem zrobić plik do tłumaczenia strony.
Zrobiłem osobny plik:
lang_polski.php
  1. <?php
  2.  
  3. $lang = array(
  4.  
  5. "help" => "pomoc",
  6. "all_doctors" => "wszyscy lekarze",
  7. );
  8. ?>


Funkcję w osobnym pliku:
language.php
  1.  
  2. /************************************************************/
  3. /* Define Theme's Constants */
  4. /************************************************************/
  5. define('MYTHEMEROOT', 'wp-content/themes/medic-final');
  6.  
  7.  
  8. /************************************************************/
  9. /* JEZYK */
  10. /************************************************************/
  11.  
  12. // SPRAWDZA CZY CIASTECZKO JEST USTAWIONE. JAK TAK TO SIĘ DO NIEGO ODWOŁUJE
  13. if(isSet($_COOKIE['lang']))
  14. {
  15. $ldef = $_COOKIE['lang'];
  16. } else {
  17. // JESLI NIE MA CIASTECZKA OTWIERAMY DOMYŚLNY JĘZYK NA STRONIE
  18. $ldef = "polski";
  19. }
  20.  
  21. // SPRAWDZDAMY CZY PLIK ISTNIEJE. JAK TAK TO SIĘ DO NIEGO ODWOŁUJEMY
  22. $lang_file = ''.MYTHEMEROOT.'/lang/lang_'.$ldef.'.php';
  23.  
  24. if(file_exists($lang_file)){
  25. include ($lang_file);
  26. echo "<!--Język wczytany! -->";
  27. } else {
  28. echo "Brak pliku z językiem!";
  29. }
  30.  
  31. function _lang($var, $var_wp)
  32. {
  33. if($var_wp == ""){
  34. echo $var;
  35. }else{
  36. echo ($var == "" ? $var_wp : $var);
  37. }
  38. }


A w pliku header.php dałem includea:
  1. // language
  2. include('lib/functions/language.php');

oraz wywołanie funkcji w pliku header.php (jako próba):
  1. <?php _lang($lang['help'], ""); ?>
  2. zwraca odpowiednio "pomoc"


I do tego momentu jest wszystko super. Za to kiedy chcę umieścić tłumaczony tekst w innym pliku np. template_gallery.php to otrzymuję błąd:

  1. Notice: Undefined variable: lang in /***/wp-content/themes/final/template-gallery.php on line 33


I teraz proszę o pomoc, czy jest coś o czym nie wiem?
Idąc krok po kroku... funkcje oraz include powinny zostać zaimportowane wraz z plikiem header.php, niestety tak się nie dzieje. Co jest źle?
Chciałem dodać includy w pliku funkcje.php ale wtedy dostaję błąd:

  1. <b>Notice</b>: Undefined variable: lang in <b>/***/wp-content/themes/final/header.php</b> on line <b>61</b><br />



Proszę niech mi ktoś to wytłumaczy. W razie pytań chętnie odpowiem.

Pozdrawiam i dziękuję wink.gif




[EDIT] [SOLUTION]

Już sobie poradziłem.

Wystarczyło dodać global

  1. <?php
  2.  
  3. global $lang;
  4. $lang = array(
  5.  
  6. "charset" => "utf-8",
  7.  
  8. "help" => "pomoc",
  9. "all_doctors" => "wszyscy lekarze"
  10.  
  11. );
  12.  
  13. ?>


Pozdro

Ten post edytował soliniak 3.02.2015, 17:30:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 10:16