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.