Jak edytować plik functions.php w WordPress i ciekawe kody

Obrazek dla Jak edytować plik functions.php w WordPress i ciekawe kody

Poradnik jest rozwinięciem Własne modyfikacje w WordPress poprzez edycję pliku functions.php.

3 sposoby na edycję pliku functions.php

Chcąc samodzielnie edytować plik functions.php możemy to zrobić używając jednego z trzech sposobów wymienionych poniżej.

Każdy motyw WordPress używa własnego pliku functions.php, który znajduje się w jego katalogu głównym.

Uwaga: Wszelkie błędnie wykonane modyfikacje pliku functions.php moga skutować problemem w działaniu strony. Dlatego należy wykonywać je z zachowaniem kopii pliku functions.php jak i najlepiej całej strony.

Edycja functions.php – Sposób 1

O ile nie mamy zablokowanej możliwości edycji plików motywu, którą często wyłącza się z przyczyn bezpieczeństwa (funkcję taką posiada m.in. opisywana przez nas wtyczka All in One WordPress Security – opisywana w poradniku Poprawa bezpieczeństwa w WordPress) najprościej modyfikację wykonać bezpośrednio z poziomu Kokpitu WordPress.

edycja plików wordpress

Edycja pliku functions.php z poziomu Kokpitu WordPress.

Kopia zapasowa: w tym przypadku możemy również wykonać kopiując całą zawartość pliku do notatnika, zapisując lokalnie na dysku swojego komputera, przed dokonaniem zmian.

Edycja functions.php – Sposób 2

Drugim sposobem jest edycja pliku z poziomu panelu hostingowego DirectAdmin.

directadmin zarządzanie plikami

Kolejny sposób – zarządzanie plikami w panelu DirectAdmin.

edycja functions.php panel DA

Edycja zawartości pliku poprzez DirectAdmin. Prawy klawisz myszy – Edytuj.

Kopia zapasowa: tu możemy wykonać kopię zapasową klikając w Save As bezpośrednio w edytorze i nazwać plik jako „functions.php-kopiazanim dokonamy jakichkolwiek zmian.

Edycja functions.php – Sposób 3

Ostatnim sposobem jest użycie Klienta FTP, np. WinSCP lub Filezilla i połączenie się z naszym serwerem. Jest to metoda dla średnio-zaawansowanych, gdyż wymaga konfiguracji takiego połączenia. Opis zamieściliśmy na naszej Wiki.

klient ftp

Program WinSCP i podłączenie do serwera FTP.

Ciekawe kody functions.php

Przedstawiamy kolejnych kilka ciekawych modyfikacji pliku functions.php

Część pierwsza dostępna jest tutaj

Uwaga: Wszelkie błędnie wykonane modyfikacje pliku functions.php moga skutować problemem w działaniu strony. Dlatego należy wykonywać je z zachowaniem kopii pliku functions.php jak i najlepiej całej strony.

O tym jak wykonać kopie zapasowe pisaliśmy również tutaj.

Pokaż nazwę używanego szablonu widoku

Przydatne, gdy pracujemy z gotowym motywem i nie znamy jego struktury, a chcemy wykonać ręczne modyfikacje.

add_action('wp_head', 'show_template');
  function show_template() {
      global $template;
      echo basename($template);
  }

Usuń block library

Ścigamy się w Google Page Speed Insights i nie używamy Gutenberga?

function wpassist_remove_block_library_css(){
    wp_dequeue_style( 'wp-block-library' );
} 
add_action( 'wp_enqueue_scripts', 'wpassist_remove_block_library_css' );

Usuń google reCaptcha badge

Wg.  Google reCaptcha powinna się wyświetlać na każdej podstronie – jednak obniża nam to prędkość i ocenę Google, także obejściem jest usunięcie skryptów reCaptcha ze wszystkich podstron, za wyjątkiem strony z nazwą 'kontakt’.

Wartość is_page() przyjmuje Page ID, tytuł, slug, lub tablicę wspomnianych.

  function oiw_disable_recaptcha_badge_page(){
  if ( !is_page( array( 'kontakt' ) ) ) {
      wp_dequeue_script('google-recaptcha');    
      wp_dequeue_script('wpcf7-recaptcha');
      wp_dequeue_style('wpcf7-recaptcha');
  }
}
add_action( 'wp_enqueue_scripts', 'oiw_disable_recaptcha_badge_page' );

Mapa strony bez nazw użytkowników

Mapa strony XML zwraca również nazwy profili użytkowników? Nie używamy żadnej wtyczki do zarządzania Mapą strony? Możemy wykluczyć z niej użytkowników.

add_filter( 'wp_sitemaps_add_provider', function ($provider, $name) {
  return ( $name == 'users' ) ? false : $provider;
}, 10, 2);

Dodaj klasę CSS do pozycji menu

W celu uzyskania większej kontroli CSS nad stylem menu naszego motywu, możemy dodać własną klasę do UL->LI.klasa_test . Każda pozycja menu będzie miała dodatkową klasę „klasa_test”, a my możemy wtedy mieć własną kotwicę aby je stylować w arkuszach styli.

function add_classes_on_li($classes, $item, $args) {
  $classes[] = 'klasa_test';
  return $classes;
}
add_filter('nav_menu_css_class','add_classes_on_li',1,3);

Przydatna jest też zamiana klas w menu. Tu zamiana nazwy klasy „sub-menu” na nazwę „dropdown-menu

function replace_submenu_class($menu) {  
  $menu = preg_replace('/ class="sub-menu"/','/ class="dropdown-menu" /',$menu);  
  return $menu;  
}  
add_filter('wp_nav_menu','replace_submenu_class');

Klasa aktywnej pozycji menu?

function special_nav_class ($classes, $item) {
  if (in_array('current-menu-item', $classes) ){
    $classes[] = 'active ';
  }
  return $classes;
}
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);

Własny widget informacyjny

Przydatne dla developerów, można podać pracownikowi klienta, dla którego wykonujemy stronę małą informację, którą zobaczy w Kokpicie WordPress.

wp_add_dashboard_widget('custom_help_widget', 'Potrzebujesz pomocy?', 'custom_dashboard_help');
}
 
function custom_dashboard_help() {
echo '<p>Potrzebujeszy pomocy w edycji bądź konfiguracji? Skontaktuj się ze mną <a href="mailto:mojemail@gmail.com">tutaj</a>.</p><p>Więcej nowości hostingowych i poradników? Odwiedź <a href="https://blog.hitme.pl" target="_blank">Blog HitMe</a>.</p>';
}
własny widget

Własny widget informacyjny w Kokpicie WordPress.

Własne logo na ekranie logowania WP

Ekran logowania do WordPress zawiera logo WP. Jeśli chcemy zbrandować panel i wymienić na nasze logo, wystarczy zmodyfikować ścieżkę do naszego pliku logo w pozycji background-image i dołączyć poniższy kod do functions.php. Możemy też użyć własnego dopisku intro.

function my_login_logo_one() { 
   echo '
   <style type="text/css"> 
   body.login div#login h1 a {
    background-image: url("'.get_bloginfo("template_directory").'/img/logo/moje-logo.png");  
   background-size:auto;
   height:100px;
   width:auto;
   margin-bottom:0px;
   } 
   body.login div#login h1:after{
       content: "Mój włąsny tekst intro";
       display: inline-block;
       color: #222;
       font-family: SANS-SERIF;
       text-align:right;
       font-size: 12px;
       height: 20px;
       width: 100%;
       z-index: 999999;
   }
   }
   </style>
   ';
    
   }
   add_action( 'login_enqueue_scripts', 'my_login_logo_one' );

Modyfikacje zostały przetestowane z WordPress w wersji 5.7.2.

Szukasz więcej ciekawych kodów WordPress?

Koniecznie zajrzyj na naszą wiki do sekcji Pomoc WordPress. Znajdziesz tam nie tylko porady dla początkujących ale i także dla developerów projektujących własne motywy WordPress.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Przegląd prywatności
hitme logo

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.

Ściśle niezbędne ciasteczka

Niezbędne ciasteczka powinny być zawsze włączone, abyśmy mogli zapisać twoje preferencje dotyczące ustawień ciasteczek.

Facebook Pixel

Używamy narzędzia Facebook Pixel, aby śledzić działania użytkowników na naszej stronie internetowej. Facebook Pixel umożliwia nam analizowanie skuteczności reklam oraz tworzenie spersonalizowanych treści marketingowych. Dzięki temu możemy lepiej dostosować naszą ofertę do Twoich potrzeb. Zbierane dane mogą obejmować m.in. informacje o odwiedzonych stronach, kliknięciach oraz konwersjach.

Bezpieczna analityka

W celu lepszej analizy ruchu na naszej stronie internetowej korzystamy z narzędzia Matomo Analytics. Matomo jest hostowane w naszej infrastrukturze, a zbierane dane nie są udostępniane żadnym podmiotom zewnętrznym. Informacje o Twojej aktywności na stronie służą jedynie do analizy statystycznej oraz poprawy jakości naszych usług, zgodnie z przepisami RODO/GDPR.

Dane są w pełni anonimowe i nie są przekazywane poza naszą firmę.