Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem
WebHelp.pl Warsztat Porady WordPress: pobieranie nazwy aktualnego szablonu

Warsztat / Porady

WordPress: pobieranie nazwy aktualnego szablonu

Bartosz Romanowski 13 stycznia 2012 komentarze ()

Tagi:WordPress

Czasem zachodzi potrzeba sprawdzenia z jakiego szablonu korzysta aktualna strona. Ponieważ każda ze stron może korzystać z innego, a WordPress nie udostępnia funkcji ułatwiającej uzyskanie takiej informacji, trzeba posłużyć się sposobem.

Pierwszy sposób polega na wyciągnięciu nazwy szablonu (a konkretnie nazwy pliku, w którym się znajduje) z parametru _wp_page_template strony. Dobrze jest podpiąć funkcję zwracającą tę informację do akcji init, można również dla wygody (gdybyśmy potrzebowali tej informacji w kilku miejscach) ustawić sobie zmienną globalną zawierającą nazwę szablonu:

Kod: Zaznacz cały
function get_current_template() {
    // musimy znać identyfikator strony/wpisu
    if(isset($_GET['post']))
        $post_id = (int)$_GET['post'];
    elseif(isset($_POST['post_ID']))
        $post_id = (int)$_POST['post_ID'];
    if(!isset($post_id)) return;

    // pobieramy wartość parametru _wp_page_template
    $template_file = get_post_meta($post_id, '_wp_page_template', TRUE);
    $GLOBALS['template_file'] = $template_file;
}
add_action('init', 'get_current_template');

Drugim sposobem jest wyciągnięcie nazwy pliku szablonu na etapie jego ładowania. Skorzystamy w tym celu z uchwytu template_include (można z niego skorzystać również do podmieniania plików szablonów w locie, ale to temat na zupełnie inny tekst):

Kod: Zaznacz cały
function get_included_template($template) {
    $GLOBALS['template_file'] = basename($template);
    return $template;
}
add_filter('template_include', 'get_included_template', 1000);

Jeden z powyższych fragmentów kodu należy wstawić do pliku functions.php szablonu lub do pliku wtyczki. Od tej pory zmienna globalna $GLOBALS['template_file'] będzie zawierać nazwę pliku szablonu użytego do wygenerowania aktualnej strony.

Masz pytania lub wątpliwości? Odwiedź nasze forum dyskusyjne.

Bartosz Romanowski

Programista, gadżeciarz, krytyczny miłośnik produktów Apple, fan ciężkich brzmień i niepoprawny pesymista.


Komentarze


HTML CSS JavaScript PHP bazy danych MySQL Flash grafika framework hosting domeny pozycjonowanie wordpress Facebook