<< powrót
Opublikowano Dodaj komentarz

Klikalne zajawki na blogu w WordPressie

Klikalne posty na blogu

W niektórych motywach możesz spotkać się z sytuacją, że na liście z postami klikalnymi elementami są tytuł, miniaturka lub przycisk „czytaj więcej”. Pokażę Ci sposób na sprawienie, aby cały kontener z zajawką przenosił do podstrony z pojedynczym artykułem. Zobacz prosty sposób na klikalne zajawki na blogu.

Taki mechanizm jest zastosowany na podstronie z blogiem: https://monikaszeliga.pl/blog. Po najechaniu kursorem myszy na zajawkę kursor zmienia wygląd na „łapkę”. Nie ma znaczenia, w którym miejscu klikniesz i tak zostaniesz przekierowany do danego wpisu.

Krótko o JavaScript i jQuery

Funkcjonalność napiszemy w języku JavaScript, korzystając z biblioteki jQuery. Dla przypomnienia język JavaScript (JS) jest skryptowym językiem programowania służącym głównie do zapewnienia interakcji pomiędzy użytkownikiem a wybranymi elementami na stronie internetowej. Za pomocą JavaScript można tworzyć złożone efekty wizualnie na stronie. Natomiast jQuery jest biblioteką programistyczną do JavaScript, ułatwiającą korzystanie z tego języka. Biblioteka jQuery posiada dość duży zestaw gotowych funkcji, z których możemy korzystać. Dzięki temu kodowanie w JavaScript staje się dużo szybsze, ponieważ mamy mniej kodu do napisania.

Podłącz bibliotekę jQuery

W pierwszej kolejności należy podłączyć bibliotekę jQuery. Polecam skorzystać z biblioteki hostowanej na zewnętrznych serwerach, np. Google. U góry pliku functions.php dodaj poniższy kod:

 function add_custom_js(){
   wp_enqueue_script( 'JQ',  get_stylesheet_directory_uri() . 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js', '1.0.0', true );
 }
 add_action('wp_footer' , 'add_custom_js');

UWAGA! Przed dodaniem powyższego kodu sprawdź, czy w Twoim motywie nie została już podłączona biblioteka jQuery.

Dodaj plik z rozszerzeniem js

Utwórz plik np. tools.js i dodaj go do plików z zainstalowanym motywem (motyw znajduje się w lokalizacji: wp-content -> themes). Następnie odwołaj się do nowo utworzonego pliku we wcześniej zdefiniowanej funkcji add_custom_js. Dodaj poniższą linijkę:

wp_enqueue_script( 'tools', get_template_directory_uri() . '/js/tools.js', array( 'jquery' ), '1.0.0', true );

W miejscu oznaczonym czerwoną ramką wpisz ścieżkę do nowo utworzonego pliku tools.js. W omawianym przykładzie plik ten znajduje się w folderze o nazwie js, dlatego ścieżka wygląda następująco: '/js/tools.js’.

Ostatecznie funkcja będzie miała postać:

 function add_custom_js(){
  wp_enqueue_script( 'JQ', 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js',  '1.0.0', true );
 wp_enqueue_script( 'tools', get_template_directory_uri() . '/js/tools.js', array( 'jquery' ), '1.0.0', true );
 }
 add_action('wp_footer' , 'add_custom_js');

UWAGA! Możliwe, że w Twoim motywie jest już plik z roszerzeniem .js, do którego będziesz mógł dodać kod JavaScript.

Sprawdź klasę kontenera

Przejdź na stronę z zajawkami postów i kliknij prawym przyciskiem myszy na danym kontenerze i wybierz opcję Zbadaj element.

klikalne zajawki na blogu na WordPressie

W inspektorze odszukaj znacznik kontenera zajawki postu.

Wybrałam dwie klasy: post oraz has-post-thumbnail.

Dodaj kod JavaScript

Teraz możemy już dodać kod JavaScript odpowiedzialny za klikalne zajawki. Otwórz plik tools.js w dowolnym edytorze kodu (polecam edytor Atom) i dodaj poniższy fragment kodu:

$("article.has-post-thumbnail").click(function() {
     window.location = $(this).find("a").attr("href");
     return false;
});

Oczywiście zamiast article.has-post-thumbnail wpisz swoje klasy:

I to wszystko 😉 Od tej pory zajawki na Twoim blogu są klikalne.

Możliwe problemy

Może się zdarzyć sytuacja, że na stronie z pojedynczym wpisem kontener wpisu stanie się elementem klikalnym. W takiej sytuacji należy go wykluczyć, modyfikując kod JavaScript.

W pierwszej kolejności sprawdź, jaka jest unikalna klasa dla elementu body dla strony z pojedynczym wpisem. Jest duże prawdopodobieństwo, że będzie to klasa single, ale lepiej to sprawdź 😉

klikalne zajawki na blogu na WordPressie

Do wykluczania klas służy pseudoklasa CSS :not(). Teraz należy zmienić odwołanie do klasy na: article.has-post-thumbnail:not(.single article.has-post-thumbnail).

Czyli tłumacząc dosłownie: „weź wszystkie kontenery o przypisanych dwóch klasach articlehas-post-thumbnail oprócz kontenerów o klasach articlehas-post-thumbnail znajdujących się w kontenerze nadrzędnym o klasie single. Zmodyfikowany kod bedzie miał postać:

$("article.has-post-thumbnail:not(.single article.has-post-thumbnail)").click(function() {
     window.location = $(this).find("a").attr("href");
     return false;
 });

Dodatek

W przypadku klikalnych elementów kursor powinien zmieniać wygląd na „łapkę”. Dzięki temu użytkownik od razu wie, że może taki element kliknąć. Strona staje się bardziej intuicyjna i łatwiejsza w obsłudze. Zmianę kursora w „łapkę” możemy osiągnąć przy pomocy kodu CSS:

article.has-post-thumbnail:not(.single article.has-post-thumbnail){
   cursor:pointer
}

Warto również dodać efekty wizualne po najechaniu kursorem myszy. To również można zrobić przy pomocy kodu CSS, korzystając z pseudoklasy :hover.

Subskrybuj
Powiadom o
guest
0 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments