25 08 10 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.
Autor wpisu jest blogerem, programistą PHP, administratorem Linux oraz twórcą blogów
RSS Subskrybuj wpisy bloga