autor: Robert
Zacznę od opisu chyba najważniejszego pliku, który znajduje się w folderze naszego motywu. Jest to plik „functions.php”, który pozwala na dodawanie do naszej strony wbudowanych funkcji WordPressowych, wczytywanie zewnętrznych styli CSS i skryptów JS, aktywowanie menu czy miniatur postów, uruchamianie filtrów itp. Plik ten jest wykonywany tylko dla danego motywu i tylko jeśli dany motyw jest włączony.
Gdy tworzymy stronę internetową opartą o sam HTML to style CSS importujemy w sekcji <head> naszej strony a pliki JS w zależności od potrzeby albo również w nagłówku albo przed zamknięciem sekcji <body>.
W WordPressie takie działanie jest niezalecane i zostały stworzone do tego odpowiednie funkcje wp_enqueue_style oraz wp_enqueue_script.
Stworzymy sobie funkcję, która będzie nam importować wszystkie potrzebne pliki oraz łatwo będziemy mogli dodać kolejny arkusz stylów czy bibliotekę JavaScript.
Zaczniemy od stworzenia sobie funkcji load_styles_and_scripts() { ... } i wewnątrz umieścimy „hooki” WordPressowe umożliwiające import plików CSS i JS do naszego motywu
Style CSS możemy importować na 2 sposoby: z serwerów zewnętrznych lub z z katalogu na naszym serwerze.
Dokonujemy tego poprzez funkcję wp_enqueue_style( $handle, $src ); gdzie $handle to przyjazna dla nas nazwa identyfikatora (np. style-bootstrap) a $src to ścieżka do zewnętrznego arkusza stylów np 'http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css'
Tutaj zasada jest bardzo podobna, znów korzystamy z wp_enqueue_style( $handle, $src ); gdzie $handle to przyjazna dla nas nazwa identyfikatora (np. style-motywu). Pewna modyfikacja dotyczy $src. Najpierw wpisujemy get_template_directory_uri(), funkcja ta zwróci nam ścieżkę do folderu naszej templatki czyli np http://wordpress.kursbootstrap.pl/wp-content/themes/kursbootstrap-v2, następnie korzystamy z „łącznika” czyli kropki . , która w PHP służy do łączenia zmiennych tekstowych a na koniec dopisujemy nazwę naszego głównego arkusza stylów czyli '/style.css'.
Oczywiście możemy mieć więcej plików CSS. Możemy stworzyć sobie w katalogu naszej skórki folder o nazwie css i umieścić w nim plik. Wtedy zamiast '/style.css' wpiszemy '/css/inny.css'
Pliki JS możemy importować na 2 sposoby: z serwerów zewnętrznych lub z z katalogu na naszym serwerze. Możemy też zadecydować czy pliki mają się importować w sekcji head lub na końcu body.
Import plików czy bibliotek JS wykonujemy za pomocą wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); gdzie:
'http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js')'false')Podobnie jak w przypadku innych stylów CSS dobrze zrobić sobie oddzielny katalog w katalogu naszego motywu. Unikniemy dzięki temu zamieszania w głównych plikach templatki i zawsze będziemy wiedzieli gdzie są nasze skrypty. Ustalmy więc, że stworzyliśmy sobie katalog /js
Import plików czy bibliotek JS wykonujemy za pomocą wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); gdzie:
get_template_directory_uri(), funkcja ta zwróci nam ścieżkę do folderu naszej templatki czyli np http://wordpress.kursbootstrap.pl/wp-content/themes/kursbootstrap-v2, następnie korzystamy z „łącznika” czyli kropki . , która w PHP służy do łączenia zmiennych tekstowych a na koniec dopisujemy nazwę naszego pliku ze skryptem JS czyli '/js/moj-skrypt.js'.'false')Na koniec zamykamy naszą funkcję load_styles_and_scripts() i dopisujemy kolejną linijkę, która uruchomi naszą funkcję. Ma ona postać add_action('wp_enqueue_scripts', 'load_styles_and_scripts'); gdzie ‚load_styles_and_scripts’ jak już pewnie zauważyliście to nazwa naszej funkcji importującej style i skrypty.
Dzięki temu zabiegowi nasz motyw zawsze wczyta sobie przeznaczone dla niego arkusze stylów i skrypty JS.
Przejdź do przykładowej stronyKod wklejałem z szablonu i tam on działa więc zapewne albo nie wkleiłeś nawiasu klamrowego zamykającego funkcję, albo średnika po add_action. Konsola w przeglądarce służy do wyświetlania błędów JavaScriptu a nie PHP, aby wyświetlić błędy PHP wklej w pliku wp-config.php linijkę define( 'WP_DEBUG', true );. Daj znać czy pomogło i pokazało Ci gdzie jest błąd:)