Functions.php w motywie Wordpresa

.

Functions.php jest jednym z tych plików, które umożliwiają dodawanie nowej, lub modyfikacje już istniejącej funkcjonalności motywu. W pliku można umieścić kod, który zmodyfikuje w jakiś sposób także panel administracyjny.

Jeżeli korzystamy z gotowego motywu, jest duża szansa, że plik ten znajduje się już tuż obok index.php i style.css. W innym przypadku może zajść potrzeba stworzenie go własnoręcznie.

Jak sama nazwa wskazuje, plik functions.php przeznaczony jest dla funkcji i ładowany razem z motywem (technicznie rezcz biorąc, kod w nim zawarty wykonywany jest sporo wcześniej) .

Ponieważ pliki motywów, za wyjątkiem tych wchodzących w skład domyślnego TwentyTen (motym Wordpresa na 2010 r.), nie należą do ścisłego źródła Wordpresa, nie musimy się martwić, że functions.php zostanie w jakiś sposób nadpisany podczas kolejnych aktualizacji silnika (tak jak nie zostaną nadpiasne inne pliku włansnego motywu).

Functions.php w praktyce

Załóżmy, że chcemy aby pewna dodatkowa funkcjonalność, taka jak miniaturki zdjęć dla wpisów, RSS dla wpisów i komentarzy oraz dostęp do widżetu umożliwiającego tworzenie menu nawigacyjnych były autmatcznie dostępne dla aktywnego motywu. Możemy to osiągnąć tworząc jedną małą funkcję. Aby uruchomić ów funkcję wykorzystujemy akcję "after_setup_theme". Kod (w postaci funkcji) dodajemy przy pomocy add_action. Pierwszym argumentem dla add_action jest nazwa haka, drugim funkcja do wykonania.

Kod funkcji theme_initial_setup dla akcji after_setup_theme zostanie wykonany tuż po ustawieniu motywu.


add_action( 'after_setup_theme','theme_initial_setup' );
function theme_initial_setup(){
  add_theme_support( 'post-thumbnails' );
  add_theme_support( 'automatic-feed-links' );
  register_nav_menus();
}

Pzykład 2

W katalogu aktywnego motywu posiadamy katalog z obrazkami o nazwie "images". W tym samym katalogu mamy również katalog ze skryptami JavaScript o nazwie "js".

Do obu ścieżek tych katalogów chcemy mieć łatwy dostęp w motywie. Możemy to osiągnąć dodając dwie nowe stałe do już istniejących w Wordpresie. Kod zapisujemy w postaci funkcji i podłączamy do akcji, która zostanie wykonana po ustawieniu motywu.


add_action( 'after_setup_theme', 'theme_initial_setup' );
function theme_const_setup(){
  define('THIS_THEME_JS_PATH',TEMPLATEPATH . "/js/");
  define('THIS_THEME_IMAGES_PATH',TEMPLATEPATH . "/images/");
}

Przykład 3

Skoro już coś dodaliśmy, spróbujmy jeszcze coś usunąć. Załóżmy, że chcemy schować informacje o wtyczkach, które domyślnie są widoczne na kokpicie panelu administracyjnego. Możemy tego dokonać za pomocą kodu jak poniżej.


add_action('wp_dashboard_setup','hide_dashboard_plugin_container' );
function hide_dashboard_plugin_container() {
   global $wp_meta_boxes;
   unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
} 

Używając pliku functions.php należy pamiętać, że kod w nim zawarty jest specyficzny dla motywu. Jeżeli dana funkcjonalność ma być dostępna dla wielu motywów lepiej jest rozważyć zapisanie jej jako wtyczki.


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>