[Thesis] Sztuczki i triki, część 1.

Pierwszy wpis z serii „Sztuczki i triki w Thesis”. Czyli wszystko to, co może się przydać przy korzystaniu z Thesis. Oczywiście, w większości skupiam się na programowaniu.

W przypadku Thesis olbrzymią rolę odgrywają hooki i filtry. Także zacznę od wyjaśnienia pojęcia hooka.

System hooków to zestaw podstawowych komend, których można użyć, aby dodać, usunąć lub zmodyfikować jakąś funkcjonalność twojej instalacji Thesis.
Dzięki wykorzystaniu hooków możesz odizolować wszystkie zmiany w kodzie HTML do jednego pliku – custom_functions.php.

Zanim przejdę do przykładów wykorzystania hooków, wtrącę jeszcze jedną rzecz, która nie jest związana z hookami, ale wiele osób intryguje. Jak usunąć ikonę RSS z menu? Niby prosta rzecz, prawda? Niestety, autorzy Thesis postanowili trochę ukryć tą opcje. Najpierw trzeba udać się do Opcje strony -> Menu -> Wybierz typ menu. Tu zaczyna być „dziwnie”, gdyż standardowo zaznacza się Menu WordPressa, lecz opcja ta jest w Menu Thesis. Należy zaznaczyć Menu Thesis. Pojawią się inne opcje, w których jest Link do feed. Odznaczamy, zaznaczamy znowu Menu WordPress i zapisujemy. Gotowe. Nie rozumiem, dlaczego ta opcja znalazła się akurat tutaj, ale mam nadzieję, że ta instrukcja komuś się przyda.

Teraz do rzeczy, czyli przykłady hooków.

Własny nagłówek.
1. Usuwamy domyślny nagłówek:

remove_action('thesis_hook_header', 'thesis_default_header');

2. Tworzymy funkcję z naszym nagłówkiem:

function custom_header() { //tu kod nagłówka }

3. Dodajemy nasz nowy nagłówek:

add_action('thesis_hook_header', 'custom_header');

Własna stopka.
1. Usuwamy domyślną stopkę:

remove_action('thesis_hook_footer', 'thesis_attribution');

2. Tworzymy funkcję z naszą stopką:

function add_custom_footer () { //tu kod stopki }

3. Dodajemy naszą nową stopkę:

add_action('thesis_hook_footer', 'add_custom_footer');

Menu pod nagłówkiem.
Czyli przesunięcie menu z góry (nad nagłówkiem) na dół (pod nagłówkiem).

remove_action('thesis_hook_before_header', 'thesis_nav_menu');
add_action('thesis_hook_after_header', 'thesis_nav_menu');

Paginacja.
Według mnie paginacja, czyli 1, 2, 3… lepiej się prezentuje niż „starsze wpisy”/”nowsze wpisy”. Niestety, najpierw musimy zainstalować jedną z wtyczek, która taką funkcjonalność doda. Ja używałem WP-PageNavi. Po zainstalowaniu wtyczki należy wykonać następujące kroki:
1. Usuwamy przyciski „starsze wpisy”/”nowsze wpisy”:

remove_action('thesis_hook_after_content', 'thesis_post_navigation');

2. Tworzymy funkcję wyświetlającą paginację:

function thesis_page_navi() {
	if(function_exists('wp_pagenavi')) {
		wp_pagenavi();
	}
}

3. Dodajemy naszą funkcję:

add_action('thesis_hook_after_content', 'thesis_page_navi');

Liczba komentarzy w nagłówku wpisu.
Nie podoba Ci się, że liczba komentarzy jest pod wpisem? Dodajmy tą liczbę do nagłówka wpisu:
1. Usuwamy link do komentarzy:

remove_action('thesis_hook_after_post', 'thesis_comments_link');

2. Tworzymy funkcję:

function tt_comment_box() {
	$num_comments = get_comments_number();
	if (is_home()) { ?>
		<div class="tt_comment_box"><a href="<?php echo get_permalink() . '#comments" rel="nofollow"' ?>><?php echo $num_comments; ?></a></div>
	<?php }
}

3. Dodajemy funkcje:

add_action('thesis_hook_before_headline', 'tt_comment_box');

Wpisy na stronie głównej tylko z wybranej kategorii.
Mamy wiele kategorii wpisów, ale na stronie głównej wyświetlić chcemy tylko te z wybranej kategorii. Nic prostszego:
1. Tworzymy funkcje, która zmodyfikuje zapytanie pobierająca listę wpisów. Pamiętamy o wypisaniu ID kategorii, których nie chcemy na stronie głównej. W tym przypadku jest to kategoria o ID=1.

function custom_loop(){
	global $wp_query;
	$toExclude = '-1';
	if(is_home()) { query_posts(array_merge(array('cat' => $toExclude),$wp_query->query)); }
}

2. Dodajemy naszą funkcję:

add_action( 'thesis_hook_before_content', 'custom_loop' );

To by było na tyle w dniu dzisiejszym. CDN.

{ 0 komentarze… dodaj teraz swój }

Odpowiedź