Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Puchar WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

46 niezwykle przydatnych sztuczek dla pliku funkcji WordPress

Uwaga redakcyjna: Otrzymujemy prowizję z linków partnerskich na WPBeginner. Prowizje nie mają wpływu na opinie i oceny naszych redaktorów. Dowiedz się więcej o Proces redakcyjny.

Zastanawiasz się, co możesz zrobić z plikiem funkcji WordPress?

Wszystkie motywy WordPress są dostarczane z plikiem functions.php. Plik ten działa jak wtyczka, umożliwiając twórcom motywów i ogólnym klientom łatwe dodawanie własnego kodu w WordPress.

W tym artykule pokażemy kilka przydatnych sztuczek dla pliku funkcji WordPress.

Handy WordPress functions file tips and hacks

Czym jest plik funkcji w WordPress?

Plik functions. php to plik motywu WordPress, który jest dostarczany ze wszystkimi darmowymi i premium motywami WordPress.

Działa jak wtyczka i umożliwia twórcom motywów definiowanie funkcji motywu. Klienci mogą również używać go do dodawania własnych fragmentów kodu w WordPress.

Jednak przechowywanie niestandardowego kodu w pliku funkcji twojego motywu nie jest najlepszym sposobem na zapisanie własnych dostosowań. Jeśli zaktualizujesz swój motyw, plik functions.php zostanie nadpisany i utracisz własne fragmenty kodu.

Zamiast tego zalecamy wszystkim korzystanie z WPCode, darmowej wtyczki, która pozwala wstawić fragmenty kodu do twojej witryny internetowej WordPress bez edytowania motywu, wtyczki lub rdzeni plików WordPress.

Najlepsze jest to, że cały twój własny konfigurator jest zapisywany osobno, więc wszelkie aktualizacje WordPressa ich nie usuwają.

Jako bonus, wtyczka WPCode posiada obszerną bibliotekę wstępnie skonfigurowanych fragmentów kodu (w tym wiele z tej listy). Możesz wdrożyć te fragmenty kodu za pomocą kilku kliknięć.

wpcode library

To powiedziawszy, oto lista elementów, które omówimy w tym artykule. Możesz przejść do tego, który Cię interesuje lub po prostu podążać za nim:

Jak dodać te fragmenty kodu do twojej witryny internetowej?

Zanim zaczniemy, przyjrzyjmy się, jak dodać fragmenty kodu z tego artykułu do twojego pliku funkcji WordPress.

1. Dodanie własnego kodu do pliku Functions za pomocą WPCode (zalecane)

Najpierw należy zainstalować i włączyć wtyczkę WPCode. Aby uzyskać więcej informacji, zobacz nasz przewodnik krok po kroku, jak zainstalować wtyczkę WordPress.

Po włączaniu przejdź do strony Fragmenty kodu ” + Dodaj fragment kodu. Zobaczysz bibliotekę kodu WPCode z wieloma pomocnymi fragmentami kodu już dodanymi.

Add snippet

Jeśli twój fragment kodu robi to samo, co fragmenty w bibliotece, to możesz wypróbować ten już tam dodany.

Alternatywnie, kliknij odnośnik „blank snippet”, aby kontynuować dodawanie własnego fragmentu kodu.

Na następnym ekranie podaj tytuł twojego własnego kodu. Może to być cokolwiek, co pomoże ci zidentyfikować, co robi ten fragment kodu.

Adding your custom code

Następnie należy wybrać rodzaj kodu. Jeśli dodajesz kod, który działa w pliku functions.php, musisz wybrać „Fragment kodu PHP”.

Następnie należy skopiować i wkleić własny kod w polu „Podgląd kodu”.

Na koniec musisz ustawić twój fragment kodu jako „Aktywny” i kliknąć przycisk „Zapisz fragment kodu”.

Activate and save

Twój zapisany fragment kodu będzie teraz działał tak, jak gdybyś dodał go do pliku functions.php.

W razie potrzeby można powtórzyć ten proces, aby dodać więcej fragmentów kodu. Można również wyłączyć fragment kodu bez jego usunięcia.

2. Dodawanie własnego kodu bezpośrednio do pliku Functions

Metoda WPCode jest zawsze lepsza niż dodawanie kodu do pliku funkcji motywu.

Jednak niektórzy użytkownicy mogą pisać kod dla własnego motywu WordPress klienta lub po prostu wolą dodawać kod do pliku functions.php.

W takim przypadku możesz dodać kod do pliku functions.php twojego motywu WordPress.

Najpierw połącz się z twoją witryną internetową WordPress za pomocą klienta FTP. Po połączeniu przejdź do katalogu /wp-content/themes/your-wordpress-theme/.

Edit functions.php file

Znajdziesz tam plik functions.php. Wystarczy kliknąć prawym przyciskiem myszy i wybrać opcję edycji lub pobrać plik na twój komputer w celu edycji.

Można go edytować za pomocą dowolnego edytora tekstu, takiego jak Notatnik lub TextEdit.

Następnie przewiń w dół do dolnej części pliku functions.php i wklej tam swój fragment kodu. Możesz zapisać zmiany i przesłać zaktualizowany plik functions.php do katalogu motywu.

Możesz teraz przejść na swoją witrynę internetową WordPress, aby zobaczyć własny kod w działaniu.

Przyjrzyjmy się teraz 46 różnym przydatnym sztuczkom dla pliku funkcji WordPress.

1. Usuwanie numeru wersji WordPressa

Zawsze powinieneś używać najnowszej wersji WordPress. Możesz jednak usuwać numer wersji WordPress z twojej witryny.

Wystarczy dodać ten fragment kodu do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');

Aby uzyskać szczegółowe instrukcje, zapoznaj się z naszym przewodnikiem na temat właściwego sposobu usuwania numeru wersji WordPress.

Chcesz oznaczyć swój obszar administracyjny WordPress białą etykietą? Dodanie własnego logo kokpitu jest pierwszym krokiem w tym procesie.

Najpierw musisz przesłać własne logo do katalogu obrazów twojego motywu jako custom-logo.png. Twoje własne logo powinno mieć proporcje 1:1 (kwadratowy obrazek) w rozmiarze 16×16 pikseli.

Następnie możesz dodać ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');

Więcej szczegółów można znaleźć w naszym przewodniku na temat dodawania własnego logo kokpitu w WordPress.

3. Zmiana stopki w panelu administracyjnym WordPressa

Stopka w obszarze administracyjnym WordPress pokazuje komunikat „Dziękujemy za tworzenie z WordPress”. Możesz go zmienić na dowolny inny, dodając ten kod:

function remove_footer_admin () {

echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';

}

add_filter('admin_footer_text', 'remove_footer_admin');

Możesz dowolnie zmieniać tekst i odnośniki, które chcesz dodać. Oto jak to wygląda na naszej witrynie testowej.

Admin footer

4. Dodawanie własnych widżetów kokpitu w WordPressie

Prawdopodobnie widziałeś widżety, które wiele wtyczek i motywów dodaje do kokpitu WordPress. Możesz dodać go samodzielnie, wklejając poniższy kod:

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}

Tak by to wyglądało:

Custom dashboard widget

Aby uzyskać szczegółowe informacje, zapoznaj się z naszym poradnikiem na temat dodawania własnych widżetów kokpitu w WordPress.

5. Zmiana domyślnego Gravatara w WordPressie

Widziałeś domyślny awatar tajemniczego mężczyzny na blogach? Możesz go łatwo zastąpić własnym awatarem.

Po prostu prześlij obrazek, którego chcesz użyć jako domyślnego awatara i dodaj ten kod do twojego pliku funkcji lub wtyczki WPCode:

function wpb_custom_default_gravatar( $avatar_defaults ) {
	$myavatar = 'https://example.com/wp-content/uploads/2022/10/dummygravatar.png';
	$avatar_defaults[$myavatar] = 'Default Gravatar';
	return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );

Teraz możesz przejść do strony Ustawienia ” Dyskusja i wybrać twój domyślny awatar.

Custom default gravatar

Szczegółowe instrukcje można znaleźć w naszym przewodniku na temat zmiany domyślnego gravatara w WordPress.

6. Dynamiczna data praw autorskich w stopce WordPress

Możesz po prostu dodać datę praw autorskich, edytując szablon stopki w twoim motywie. Nie będzie ona jednak pokazywać daty uruchomienia twojej witryny i nie zmieni się automatycznie w następnym roku.

Ten kod może dodać dynamiczną datę praw autorskich w stopce WordPress:

function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

Po dodaniu tej funkcji musisz otworzyć twój plik footer.php i dodać następujący kod w miejscu, w którym chcesz wyświetlać dynamiczną datę praw autorskich:

<?php echo wpb_copyright(); ?>

Ta funkcja szuka daty twojego pierwszego wpisu i daty twojego ostatniego wpisu. Następnie zwraca lata w dowolnym miejscu wywołania funkcji.

Wskazówka: Jeśli korzystasz z wtyczki WPCode, możesz połączyć dwa fragmenty kodu. Następnie wybierz lokalizację „Site Wide Footer” w sekcji „Insertion” w ustawieniach fragmentu kodu. Spowoduje to automatyczne wyświetlenie daty praw autorskich w stopce bez konieczności edytowania pliku footer.php twojego motywu.

Add to footer using WPCode

Więcej szczegółów można znaleźć w naszym przewodniku na temat dodawania dynamicznych dat praw autorskich w WordPress.

7. Losowa zmiana koloru tła w WordPress

Czy chcesz losowo zmieniać kolor tła na twoim blogu WordPress przy każdym przejściu na stronę i przeładowaniu strony? Oto jak łatwo to zrobić.

Najpierw dodaj ten kod do pliku funkcji twojego motywu lub wtyczki WPCode:

function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];

echo $color; 
} 

Następnie musisz edytować plik header.php w twoim motywie. Znajdź tag <body> i zastąp go tym wierszem:

<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">

Możesz teraz zapisać zmiany i przejść na twoją witrynę internetową, aby zobaczyć ten kod w działaniu.

Random background colors

Więcej szczegółów i alternatywne metody można znaleźć w naszym poradniku na temat losowej zmiany koloru tła w WordPress.

8. Aktualizacja adresów URL WordPress

Jeśli twoja strona logowania WordPress ciągle się odświeża lub nie możesz uzyskać dostępu do obszaru administracyjnego, musisz zaktualizować adresy URL WordPress.

Jednym ze sposobów jest użycie pliku wp-config.php. Jeśli jednak to zrobisz, nie będziesz mógł ustawić poprawnego adresu na stronie ustawień. Pola Adres URL WordPress i Adres URL witryny zostaną zablokowane i nie będzie można ich edytować.

Zamiast tego wystarczy dodać ten kod do twojego pliku funkcji, aby to poprawić:

update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );

Nie zapomnij zastąpić example.com nazwą twojej domeny.

Po zalogowaniu się można przejść do strony Ustawienia w obszarze administracyjnym WordPress i ustawić adresy URL.

Następnie należy usuwać kod dodany do pliku funkcji lub WPCode. W przeciwnym razie będzie on aktualizował te adresy URL przy każdym wejściu na twoją witrynę.

9. Dodawanie dodatkowych rozmiarów obrazków w WordPressie

WordPress automatycznie generuje kilka rozmiarów obrazków podczas ich przesyłania. Możesz także utworzyć dodatkowe rozmiary obrazków do wykorzystania w twoim motywie.

Wystarczy dodać ten kod do pliku funkcji twojego motywu lub jako fragment kodu WPCode:

add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

Ten kod tworzy trzy nowe obrazki o różnych rozmiarach. Możesz dowolnie modyfikować ten kod, aby spełniał twoje wymagania.

Następnie możesz wyświetlić rozmiar obrazka w dowolnym miejscu twojego motywu za pomocą tego kodu:

<?php the_post_thumbnail( 'homepage-thumb' ); ?>

Szczegółowe instrukcje można znaleźć w naszym przewodniku na temat tworzenia dodatkowych rozmiarów obrazków w WordPress.

10. Utwórz nowe menu nawigacji w twoim motywie

WordPress umożliwia twórcom motywów definiowanie menu nawigacyjnych, a następnie ich wyświetlanie.

Możesz utworzyć ten kod w pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode, aby zdefiniować nowe położenie menu w twoim motywie:

function wpb_custom_new_menu() {
  register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );

Możesz teraz przejść do Wygląd ” Menu w twoim kokpicie WordPress i zobaczyć „Moje własne menu” jako opcję położenia motywu.

Custom menu location

Uwaga: Ten kod będzie również działał z motywami blokowymi z pełną funkcją edycji witryny. Jego dodanie włączy ekran Menu w sekcji Wygląd.

Teraz musisz dodać ten kod do twojego motywu w miejscu, w którym chcesz wyświetlić menu nawigacyjne:

 <?php
wp_nav_menu( array( 
    'theme_location' => 'my-custom-menu', 
    'container_class' => 'custom-menu-class' ) ); 
?>

Aby uzyskać szczegółowe instrukcje, zapoznaj się z naszym przewodnikiem na temat dodawania własnych menu nawigacyjnych w motywach WordPress.

11. Dodawanie pól profilu autora

Chcesz dodać dodatkowe pola do twojego profilu autora w WordPress? Możesz to łatwo zrobić, dodając ten kod do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';

return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);

Ten kod doda pola Twittera i Facebooka do profili użytkowników w WordPress.

New profile fields

Możesz teraz wyświetlić te pola w twoim szablonie autora w następujący sposób:

<?php echo get_the_author_meta('twitter') ?>

Możesz również zapoznać się z naszym przewodnikiem na temat dodawania dodatkowych pól profilu użytkownika w rejestracji WordPress.

12. Dodawanie obszarów gotowych na widżety lub paneli bocznych w motywach WordPressa

Jest to jeden z najczęściej używanych fragmentów kodu, a wielu programistów już wie o dodawaniu obszarów gotowych do widżetów lub paneli bocznych do motywów WordPress. Ale zasługuje na to, by znaleźć się na tej liście dla tych, którzy tego nie wiedzą.

Możesz wkleić poniższy kod w twoim pliku functions.php lub jako nowy fragment kodu WPCode:

// Register Sidebars
function custom_sidebars() {

	$args = array(
		'id'            => 'custom_sidebar',
		'name'          => __( 'Custom Widget Area', 'text_domain' ),
		'description'   => __( 'A custom widget area', 'text_domain' ),
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
	);
	register_sidebar( $args );

}
add_action( 'widgets_init', 'custom_sidebars' );

Uwaga: Ten kod będzie również działał z motywami blokowymi z pełną funkcją edycji witryny. Jego dodanie włączy ekran Widżetów w sekcji Wygląd.

Możesz teraz przejść na stronę Wygląd ” Widżety i zobaczyć twój nowy obszar konfiguratora widżetów.

Custom widget area

Aby wyświetlić ten panel boczny lub obszar gotowy na widżet na twojej witrynie internetowej, musisz dodać następujący kod w szablonie, w którym chcesz go wyświetlić:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>

Więcej szczegółów można znaleźć w naszym przewodniku na temat dodawania dynamicznych obszarów gotowych na widżety i paneli bocznych w WordPress.

13. Manipulowanie stopką kanału RSS

Czy widziałeś blogi, które dodają swoje reklamy w swoich kanałach RSS pod każdym wpisem? Można to łatwo osiągnąć za pomocą prostej funkcji. Wystarczy wkleić następujący kod:

function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');

Więcej informacji można znaleźć w naszym przewodniku na temat dodawania treści i całkowitego manipulowania twoimi kanałami RSS.

14. Dodawanie wyróżniających się obrazków do kanałów RSS

Miniaturki wpisów lub wyróżniające się obrazki są zwykle wyświetlane tylko w ramach projektu twojej witryny. Możesz łatwo rozszerzyć tę funkcjonalność na twój kanał RSS za pomocą poniższego kodu:

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

Aby uzyskać więcej informacji, zapoznaj się z naszym przewodnikiem na temat dodawania miniaturek wpisów do kanału RSS WordPress.

15. Ukryj błędy logowania w WordPress

Hakerzy mogą wykorzystywać błędy logowania, aby odgadnąć, czy wpiszą nieprawidłową nazwę użytkownika lub hasło. Ukrywając błędy logowania w WordPressie, możesz sprawić, że twój obszar logowania i witryna internetowa WordPress będą bardziej zabezpieczone.

Wystarczy dodać poniższy kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

Teraz użytkownicy zobaczą ogólny komunikat, gdy wpiszą nieprawidłową nazwę użytkownika lub hasło.

Custom login errors

Aby uzyskać więcej informacji, zobacz nasz poradnik na temat wyłączania podpowiedzi logowania w komunikatach o błędach WordPress.

16. Wyłącz logowanie przez e-mail w WordPress

WordPress pozwala użytkownikom logować się za pomocą nazwy użytkownika lub adresu e-mail. Możesz łatwo wyłączyć logowanie przez e-mail w WordPress, dodając ten kod do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

Aby uzyskać więcej informacji, zapoznaj się z naszym przewodnikiem na temat wyłączania funkcji logowania przez e-mail w WordPress.

17. Wyłączanie funkcji wyszukiwania w WordPress

Jeśli chcesz wyłączyć funkcję wyszukiwania w witrynie WordPress, po prostu utwórz ten kod w pliku funkcji lub w nowym fragmencie kodu WPCode:

function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}

Ten kod po prostu wyłącza zapytanie wyszukiwania, modyfikując je i zwracając błąd 404 zamiast wyników wyszukiwania.

Aby uzyskać więcej informacji, zapoznaj się z naszym poradnikiem na temat wyłączania funkcji wyszukiwania WordPress.

Pro Tip: Zamiast rezygnować z wyszukiwarki WordPress, zalecamy wypróbowanie SearchWP. Jest to najlepsza wtyczka wyszukiwania WordPress na rynku, która pozwala dodać potężną i konfigurowalną funkcję wyszukiwania do twojej witryny internetowej.

18. Opóźnianie wpisów w kanale RSS

Czasami możesz opublikować artykuł z błędem gramatycznym lub ortograficznym.

Błąd zostanie opublikowany i rozesłany do subskrybentów Twojego kanału RSS. Jeśli posiadasz subskrypcje e-mail na twoim blogu WordPress, to ci subskrybenci również otrzymają powiadomienie.

Wystarczy dodać ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode, aby opóźnić wpisy na kanale RSS:

function publish_later_on_feed($where) {

	global $wpdb;

	if ( is_feed() ) {
		// timestamp in WP-format
		$now = gmdate('Y-m-d H:i:s');

		// value for wait; + device
		$wait = '10'; // integer

		// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
		$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

		// add SQL-sytax to default $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
	}
	return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

W tym kodzie użyliśmy 10 minut jako $wait lub czas opóźnienia. Możesz zmienić tę wartość na dowolną liczbę minut.

Aby uzyskać metodę wtyczki i więcej informacji, zapoznaj się z naszym szczegółowym przewodnikiem na temat opóźniania pojawiania się wpisów w kanale RSS WordPress.

19. Zmiana tekstu Dowiedz się więcej dla zajawek w WordPressie

Chcesz zmienić tekst, który pojawia się po zajawce w twoich wpisach? Po prostu dodaj ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

20. Wyłączanie kanałów RSS w WordPressie

Nie wszystkie witryny internetowe potrzebują kanałów RSS. Jeśli chcesz wyłączyć kanały RSS na swojej witrynie WordPress, dodaj ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function new_excerpt_more($more) {
 global $post;
 return '<a class="moretag" 
 href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Aby uzyskać metodę wtyczki i więcej informacji, zapoznaj się z naszym przewodnikiem na temat wyłączania kanałów RSS w WordPress.

21. Zmiana długości zajawki w WordPressie

WordPress ogranicza długość zajawek do 55 słów. Jeśli chcesz to zmienić, możesz utworzyć ten kod w swoim pliku funkcji lub jako nowy fragment kodu WPCode:

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Wystarczy zmienić 100 na liczbę słów, które mają być wyświetlane w zajawkach.

W przypadku alternatywnych metod, warto zapoznać się z naszym przewodnikiem na temat tego, jak dostosować zajawki WordPress (bez konieczności kodowania).

22. Dodawanie użytkownika administratora w WordPress

Jeśli zapomniałeś hasła do WordPressa i e-maila, możesz dodać użytkownika administratora, dodając ten kod do pliku funkcji twojego motywu za pomocą klienta FTP:

function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user )  && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');

Nie zapomnij wypełnić pól nazwy użytkownika, hasła i e-maila.

Ważne: Po zalogowaniu się do twojej witryny WordPress, nie zapomnij usunąć kodu z pliku funkcji.

Aby dowiedzieć się więcej na ten temat, zapoznaj się z naszym poradnikiem na temat dodawania użytkownika administratora w WordPressie za pomocą FTP.

23. Wyłącz przełącznik języka na stronie logowania

Jeśli prowadzisz wielojęzyczną witrynę internetową, WordPress wyświetla selektor języka na stronie logowania. Możesz go łatwo wyłączyć, dodając następujący kod do twojego pliku functions.php lub jako nowy fragment kodu WPCode:

add_filter( 'login_display_language_dropdown', '__return_false' );

24. Pokaż całkowitą liczbę zarejestrowanych użytkowników w WordPress

Chcesz wyświetlić całkowitą liczbę zarejestrowanych użytkowników na twojej witrynie WordPress? Po prostu dodaj ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');

Ten kod tworzy krótki kod, który pozwala wyświetlić całkowitą liczbę zarejestrowanych użytkowników na twojej witrynie.

Teraz wystarczy dodać krótki kod [user_count] do twojego wpisu lub strony, na której chcesz wyświetlić całkowitą liczbę użytkowników.

Aby uzyskać więcej informacji i metodę wtyczki, zobacz nasz poradnik, jak wyświetlić całkowitą liczbę zarejestrowanych użytkowników w WordPress.

25. Wykluczanie określonych kategorii z kanału RSS

Czy chcesz wykluczyć określone kategorie z twojego kanału RSS WordPress? Możesz dodać ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', '-5, -2, -3');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

26. Wyłączanie odnośników URL w komentarzach WordPress

Domyślnie WordPress konwertuje adres URL na klikalny odnośnik w komentarzach.

Możesz to zatrzymać, dodając poniższy kod do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

remove_filter( 'comment_text', 'make_clickable', 9 );

Aby uzyskać szczegółowe informacje, zapoznaj się z naszym artykułem na temat wyłączania automatycznego linkowania w komentarzach WordPress.

27. Dodawanie nieparzystych i parzystych klas CSS do wpisów WordPress

Być może widziałeś motywy WordPress używające nieparzystej lub parzystej klasy dla komentarzy WordPress. Pomaga to użytkownikom wizualizować, gdzie kończy się jeden komentarz, a zaczyna następny.

Możesz użyć tej samej techniki dla twoich wpisów WordPress. Wygląda to estetycznie i pomaga użytkownikom szybko skanować strony z dużą ilością treści.

Wystarczy dodać ten kod do pliku funkcji twojego motywu:

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';

Ten kod po prostu dodaje nieparzystą lub parzystą klasę do wpisów WordPress. Możesz teraz dodać własny CSS, aby nadać im inny styl.

Oto przykładowy kod, który pomoże ci zacząć:

.even {
background:#f0f8ff;
}
.odd {
 background:#f4f4fb;
}

Efekt końcowy będzie wyglądał mniej więcej tak:

Alternating background colors

Potrzebujesz bardziej szczegółowych instrukcji? Zapoznaj się z naszym poradnikiem na temat dodawania klas nieparzystych/nieparzystych do twoich wpisów w motywach WordPress.

28. Dodawanie dodatkowych rodzajów plików do przesłania w WordPress

Domyślnie WordPress umożliwia przesyłanie ograniczonej liczby najczęściej używanych rodzajów plików. Można ją jednak rozszerzyć, aby umożliwić przesyłanie innych rodzajów plików.

Wystarczy dodać ten kod do pliku funkcji twojego motywu:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Ten kod umożliwia przesyłanie plików SVG i PSD do WordPress.

Będziesz musiał znaleźć typy mime dla rodzajów plików, na które chcesz zezwolić, a następnie użyć ich w kodzie.

Aby dowiedzieć się więcej na ten temat, zapoznaj się z naszym poradnikiem na temat dodawania dodatkowych rodzajów plików do przesłania w WordPress.

WordPress domyślnie używa nieistniejącego adresu e-mail (wordpress@yourdomain.com) do wysyłania wychodzących wiadomości e-mail.

Ten adres e-mail może zostać oznaczony jako spam przez dostawców usług e-mail.

Użycie wtyczki WP Mail SMTP jest właściwym sposobem na poprawienie tego.

WP Mail SMTP

Poprawiono w nim problemy z dostarczalnością wiadomości e-mail i umożliwiono wybranie rzeczywistego adresu e-mail do wysyłania twoich wiadomości e-mail w WordPress.

Aby dowiedzieć się więcej, zapoznaj się z naszym przewodnikiem na temat tego, jak poprawić problem z niewysyłaniem e-maili przez WordPress.

Z drugiej strony, jeśli chcesz szybko zmienić to na prawdziwy adres e-mail, możesz utworzyć następujący kod w twoim pliku funkcji lub jako nowy fragment kodu WPCode:

// Function to change email address
function wpb_sender_email( $original_email_address ) {
    return 'tim.smith@example.com';
}
 
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
    return 'Tim Smith';
}
 
// Hooking up our functions to WordPress filters 
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );

Nie zapomnij zastąpić adresu e-mail i imienia własnymi informacjami.

Problem z tą metodą polega na tym, że WordPress nadal używa funkcji mail() do wysyłania e-maili, a takie wiadomości najprawdopodobniej trafią do spamu.

Aby uzyskać lepsze alternatywy, zobacz nasz poradnik, jak zmienić nazwę nadawcy w wychodzących e-mailach WordPress.

30. Dodawanie pola informacji o autorze we wpisach WordPress

Jeśli prowadzisz witrynę z wieloma autorami i chcesz prezentować biogramy autorów na końcu twoich wpisów, możesz wypróbować tę metodę.

Zacznij od dodania tego kodu do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

function wpb_author_info_box( $content ) {

global $post;

// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {

// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );

// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );

// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );

// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);

// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
	
// Get User Gravatar
$user_gravatar =  get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );

if ( ! empty( $display_name ) )

$author_details = '<p class="author_name">About ' . $display_name . '</p>';

if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description. 

$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';

$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';  

// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {

// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';

} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}

// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}

// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );

// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');

Następnie należy dodać trochę własnego CSS, aby wyglądał lepiej.

Możesz użyć tego przykładowego CSS jako punktu wyjścia:

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}

.author_name{
font-size:16px;
font-weight: bold;
}

.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

Tak będzie wyglądać twoja skrzynka autorska:

Author bio box

Aby uzyskać metodę wtyczki i bardziej szczegółowe instrukcje, zapoznaj się z naszym artykułem na temat dodawania pola informacyjnego autora we wpisach WordPress.

31. Wyłączanie XML-RPC w WordPress

XML-RPC to metoda, która umożliwia aplikacjom innych firm zdalną komunikację z twoją witryną WordPress. Może to powodować problemy z zabezpieczeniami i być wykorzystywane przez hakerów.

Aby wyłączyć XML-RPC w WordPress, dodaj następujący kod do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

add_filter('xmlrpc_enabled', '__return_false');

Możesz przeczytać nasz artykuł o tym, jak wyłączyć XML-RPC w WordPress, aby uzyskać więcej informacji.

32. Automatycznie odnośniki obrazków wyróżniających do wpisów

Jeśli twój motyw WordPress nie łączy automatycznie wyróżniających się obrazków z pełnymi artykułami, możesz wypróbować tę metodę.

Wystarczy dodać ten kod do pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {

If (! is_singular()) { 

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;

} else { 

return $html;

}

}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );

Warto przeczytać nasz artykuł na temat automatycznego odnośnika wyróżniających się obrazków do wpisów w WordPressie.

33. Wyłączanie edytora bloków w WordPress

WordPress wykorzystuje nowoczesny i intuicyjny edytor do pisania treści i edycji twojej witryny internetowej. Edytor ten wykorzystuje bloki dla często używanych treści i elementów układu, dlatego też nazywany jest edytorem bloków.

W niektórych przypadkach może być jednak konieczne użycie starszego edytora Classic Editor.

Najprostszym sposobem na wyłączenie edytora bloków jest użycie wtyczki Classic Editor. Jeśli jednak nie chcesz używać osobnej wtyczki, po prostu utwórz poniższy kod w twoim pliku funkcji lub jako nowy fragment kodu WPCode:

add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);

Więcej szczegółów można znaleźć w naszym poradniku na temat wyłączania Edytora bloków i korzystania z Edytora klasycznego.

34. Wyłączanie widżetów blokowych w WordPress

WordPress przeszedł z klasycznych widżetów na widżety blokowe w WordPress 5.8. Nowe widżety blokowe są łatwiejsze w użyciu i zapewniają większą kontrolę nad projektem niż klasyczne widżety.

Jednak niektórzy użytkownicy mogą nadal chcieć korzystać z klasycznych widżetów. W takim przypadku możesz użyć następującego kodu w pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

add_filter( 'use_widgets_block_editor', '__return_false' );

Więcej szczegółów można znaleźć w naszym artykule na temat wyłączania bloków widżetów (przywracania klasycznych widżetów).

35. Wyświetlanie daty ostatniej aktualizacji w WordPress

Gdy odwiedzający zobaczą wpis lub stronę na twoim blogu WordPress, twój motyw WordPress pokaże datę publikacji wpisu. Jest to dobre rozwiązanie dla większości blogów i statycznych witryn internetowych.

Jednak WordPress jest również używany przez witryny internetowe, w których stare artykuły są regularnie aktualizowane. W takich publikacjach wyświetlanie daty i godziny ostatniej modyfikacji wpisu jest niezbędne.

Last updated date

Możesz wyświetlić datę ostatniej aktualizacji za pomocą następującego kodu w pliku funkcji twojego motywu lub jako nowy fragment kodu WPCode:

$u_time          = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {

	$updated_date = get_the_modified_time( 'F jS, Y' );
	$updated_time = get_the_modified_time( 'h:i a' );

	$updated = '<p class="last-updated">';

	$updated .= sprintf(
	// Translators: Placeholders get replaced with the date and time when the post was modified.
		esc_html__( 'Last updated on %1$s at %2$s' ),
		$updated_date,
		$updated_time
	);
	$updated .= '</p>';

	echo wp_kses_post( $updated );
}

Alternatywne metody i więcej szczegółów można znaleźć w naszym przewodniku na temat wyświetlania daty ostatniej aktualizacji w WordPress.

36. Używaj małych liter w nazwach przesyłanych plików

Jeśli prowadzisz witrynę internetową z wieloma autorami, autorzy mogą przesyłać obrazki z nazwami plików zapisanymi wielkimi i małymi literami.

Dodanie poniższego kodu gwarantuje, że wszystkie nazwy plików będą pisane małymi literami:

add_filter( 'sanitize_file_name', 'mb_strtolower' );

Uwaga: Ten kod nie zmieni nazw plików dla istniejących przesłanych plików. Alternatywne metody można znaleźć w naszym poradniku na temat zmiany nazw obrazków i plików multimedialnych w WordPress.

37. Wyłącz pasek administratora WordPress na frontendzie

Domyślnie WordPress wyświetla pasek administratora u góry, gdy zalogowany użytkownik zobaczy twoją witrynę internetową.

Pasek administratora można wyłączyć dla wszystkich użytkowników z wyjątkiem administratorów witryny. Wystarczy dodać poniższy kod do twojego pliku funkcji lub jako nowy fragment kodu WPCode:

/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );

Aby uzyskać więcej informacji, zapoznaj się z naszym przewodnikiem na temat wyłączania paska administratora WordPress dla wszystkich użytkowników z wyjątkiem administratorów.

38. Zmiana tekstu Howdy Admin w obszarze administracyjnym

WordPress wyświetla powitanie „Howdy Admin” w kokpicie WordPress. „Admin” jest zastępowane nazwą logującego się użytkownika.

Howdy greeting

Domyślne powitanie można zmienić na twoje własne, dodając poniższy kod w pliku funkcji lub jako nowy fragment kodu WPCode:

function wpcode_snippet_replace_howdy( $wp_admin_bar ) {

	// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
	$new_howdy = 'Welcome,';

	$my_account = $wp_admin_bar->get_node( 'my-account' );
	$wp_admin_bar->add_node(
		array(
			'id'    => 'my-account',
			'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
		)
	);
}

add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );

Aby uzyskać więcej informacji, zobacz nasz artykuł na temat zmiany komunikatu „Howdy Admin” w WordPress.

39. Wyłączanie edycji kodu w edytorze bloków

Edytor bloków umożliwia przełączenie się do edytora kodu. Przydaje się to w przypadku konieczności ręcznego dodania kodu HTML.

Warto jednak ograniczyć tę funkcję do administratorów witryny.

Aby to osiągnąć, możesz dodać poniższy kod do twojego pliku funkcji lub jako fragment kodu WPCode:

add_filter( 'block_editor_settings_all', function ( $settings ) {
	
	$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );

	return $settings;
} );

40. Wyłączanie edytora plików wtyczek / motywów

WordPress posiada wbudowany edytor, w którym można edytować pliki wtyczek. Możesz go zobaczyć, przechodząc do strony Wtyczki ” Edytor plików wtyczek.

Plugin file editor in WordPress

Podobnie, WordPress zawiera również edytor plików dla klasycznych motywów w Wygląd ” Edytor plików motywu.

Uwaga: Jeśli używasz motywu blokowego, edytor plików motywu nie jest widoczny.

Theme file editor

Nie zalecamy używania tych edytorów do wprowadzania zmian w twoim motywie lub wtyczce. Drobny błąd w kodzie może sprawić, że twoja witryna internetowa będzie niedostępna dla wszystkich użytkowników.

Aby wyłączyć edytor wtyczek/tematów, dodaj następujący kod do twojego pliku funkcji lub jako fragment kodu WPCode:

// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
	define( 'DISALLOW_FILE_EDIT', true );
}

Więcej szczegółów można znaleźć w naszym poradniku na temat wyłączania edytora wtyczek/tematów w WordPress.

41. Wyłączanie e-maili z powiadomieniami o nowych użytkownikach

Domyślnie WordPress wysyła powiadomienie e-mail, gdy nowy użytkownik dołącza do twojej witryny internetowej WordPress.

Jeśli prowadzisz witrynę członkostwa WordPress lub wymagasz od użytkowników rejestracji, otrzymasz powiadomienie za każdym razem, gdy użytkownik dołączy do Twojej witryny internetowej.

Aby wyłączyć te powiadomienia, możesz utworzyć następujący fragment w pliku funkcji lub w nowym fragmencie kodu WPCode:

function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
	if ( empty( $notify ) || 'admin' === $notify ) {
		return;
	} elseif ( 'both' === $notify ) {
		// Send new users the email but not the admin.
		$notify = 'user';
	}
	wp_send_new_user_notifications( $user_id, $notify );
}

add_action(
	'init',
	function () {
		// Disable default email notifications.
		remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
		remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );

		// Replace with custom function that only sends to user.
		add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
		add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
	}
);

Aby uzyskać więcej informacji, zapoznaj się z naszym poradnikiem na temat wyłączania powiadomień e-mail dla nowych użytkowników w WordPress.

42. Wyłącz automatyczne powiadomienia e-mail o aktualizacjach

Od czasu do czasu WordPress może automatycznie zainstalować aktualizacje zabezpieczeń i konserwacji lub zaktualizować wtyczkę z krytyczną luką.

Po każdej aktualizacji wysyła automatyczne powiadomienie e-mail o aktualizacji. Jeśli zarządzasz wieloma witrynami internetowymi WordPress, możesz otrzymać kilka takich e-maili.

Możesz utworzyć ten kod w swoim pliku funkcji lub jako nowy fragment kodu WPCode, aby wyłączyć powiadomienia e-mail:

/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );

// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );

// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );

Aby dowiedzieć się więcej, zobacz nasz artykuł o tym, jak wyłączyć automatyczne aktualizacje e-mail w WordPress.

43. Dodawanie odnośnika do łatwego duplikowania wpisów

Czy kiedykolwiek chciałeś mieć łatwiejszy sposób na szybkie skopiowanie całej treści wpisu do edycji bez dotykania opublikowanego wpisu?

Poniższy fragment kodu doda opcję łatwego duplikowania wpisu z całą jego treścią:

// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );

// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
	/**
	 * @param array   $actions The actions added as links to the admin.
	 * @param WP_Post $post The post object.
	 *
	 * @return array
	 */
	function wpcode_snippet_duplicate_post_link( $actions, $post ) {

		// Don't add action if the current user can't create posts of this post type.
		$post_type_object = get_post_type_object( $post->post_type );

		if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
			return $actions;
		}


		$url = wp_nonce_url(
			add_query_arg(
				array(
					'action'  => 'wpcode_snippet_duplicate_post',
					'post_id' => $post->ID,
				),
				'admin.php'
			),
			'wpcode_duplicate_post_' . $post->ID,
			'wpcode_duplicate_nonce'
		);

		$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';

		return $actions;
	}
}

/**
 * Handle the custom action when clicking the button we added above.
 */
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {

	if ( empty( $_GET['post_id'] ) ) {
		wp_die( 'No post id set for the duplicate action.' );
	}

	$post_id = absint( $_GET['post_id'] );

	// Check the nonce specific to the post we are duplicating.
	if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
		// Display a message if the nonce is invalid, may it expired.
		wp_die( 'The link you followed has expired, please try again.' );
	}

	// Load the post we want to duplicate.
	$post = get_post( $post_id );

	// Create a new post data array from the post loaded.
	if ( $post ) {
		$current_user = wp_get_current_user();
		$new_post     = array(
			'comment_status' => $post->comment_status,
			'menu_order'     => $post->menu_order,
			'ping_status'    => $post->ping_status,
			'post_author'    => $current_user->ID,
			'post_content'   => $post->post_content,
			'post_excerpt'   => $post->post_excerpt,
			'post_name'      => $post->post_name,
			'post_parent'    => $post->post_parent,
			'post_password'  => $post->post_password,
			'post_status'    => 'draft',
			'post_title'     => $post->post_title . ' (copy)',// Add "(copy)" to the title.
			'post_type'      => $post->post_type,
			'to_ping'        => $post->to_ping,
		);
		// Create the new post
		$duplicate_id = wp_insert_post( $new_post );
		// Copy the taxonomy terms.
		$taxonomies = get_object_taxonomies( get_post_type( $post ) );
		if ( $taxonomies ) {
			foreach ( $taxonomies as $taxonomy ) {
				$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
				wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
			}
		}
		// Copy all the custom fields.
		$post_meta = get_post_meta( $post_id );
		if ( $post_meta ) {

			foreach ( $post_meta as $meta_key => $meta_values ) {
				if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
					continue;
				}
				foreach ( $meta_values as $meta_value ) {
					add_post_meta( $duplicate_id, $meta_key, $meta_value );
				}
			}
		}

		// Redirect to edit the new post.
		wp_safe_redirect(
			add_query_arg(
				array(
					'action' => 'edit',
					'post'   => $duplicate_id
				),
				admin_url( 'post.php' )
			)
		);
		exit;
	} else {
		wp_die( 'Error loading post for duplication, please try again.' );
	}
} );

Po dodaniu kodu przejdź do ekranu Wpisy ” Wszystkie wpisy i najedź kursorem myszy na tytuł wpisu.

Pod opcjami zostanie powiadomiony nowy odnośnik „Duplicator”.

Duplicate post link

Kliknięcie odnośnika spowoduje utworzenie kopii wpisu z całą jego treścią. Możesz wtedy pracować nad tą wersją roboczą.

Po zakończeniu możesz skopiować i wkleić twoje zmiany do oryginalnego opublikowanego wpisu i usunąć kopię.

Aby zapoznać się z metodą wtyczki, zobacz nasz artykuł na temat duplikowania wpisu lub strony WordPress.

44. Usuwanie panelu powitalnego z kokpitu administratora WordPressa

Panel powitalny pojawia się w kokpicie administracyjnym WordPress. Można go łatwo odrzucić lub ukryć, klikając przycisk „Opcje ekranu”.

Welcome panel

Jeśli jednak pracujesz nad stworzeniem czystszego kokpitu dla użytkowników, możesz chcieć go trwale ukryć.

Dodaj poniższy kod, aby wyłączyć go dla wszystkich użytkowników twojej witryny:

add_action(
	'admin_init',
	function () {
		remove_action( 'welcome_panel', 'wp_welcome_panel' );
	}
);

45. Dodawanie kolumny z wyróżniającym się obrazkiem dla wpisów w panelu administracyjnym WordPressa

Domyślnie WordPress wyświetla wyróżniające się obrazki tylko wtedy, gdy zobaczysz swoją witrynę lub gdy edytujesz wpis lub stronę.

Poniższy kod utworzy nową kolumnę na ekranie Wpisy ” Wszystkie wpisy dla obrazków wyróżniających:

add_filter( 'manage_posts_columns', function ( $columns ) {
	// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
	$move_after     = 'title';
	$move_after_key = array_search( $move_after, array_keys( $columns ), true );

	$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
	$last_columns  = array_slice( $columns, $move_after_key + 1 );

	return array_merge(
		$first_columns,
		array(
			'featured_image' => __( 'Featured Image' ),
		),
		$last_columns
	);
} );

add_action( 'manage_posts_custom_column', function ( $column ) {
	if ( 'featured_image' === $column ) {
		the_post_thumbnail( array( 300, 80 ) );
	}
} );

Oto jak będzie to wyglądać po dodaniu kodu.

Featured image column

46. Blokowanie obszaru administracyjnego WordPress dla wszystkich z wyjątkiem administratorów

Niektóre witryny internetowe WordPress mogą wymagać od użytkowników rejestracji konta. Na przykład witryna członkowska WordPress lub sklep e-handel.

Większość takich wtyczek uniemożliwi tym użytkownikom dostęp do obszaru administracyjnego. Jeśli jednak nie korzystasz z takiej wtyczki, możesz dodać następujący kod, aby zablokować wszystkim użytkownikom z wyjątkiem administratorów dostęp do obszaru administracyjnego:

add_action( 'admin_init', function() {
	if ( ! current_user_can( 'administrator' ) ) {
       wp_redirect( home_url() );
       exit;
	}
} );

Użytkownicy z innymi rolami użytkowników mogą nadal logować się na swoje konta, ale po zalogowaniu się zostaną przekierowani na stronę główną.

Mamy nadzieję, że ten artykuł pomógł ci nauczyć się kilku nowych przydatnych sztuczek dotyczących pliku functions.php w WordPress. Zachęcamy również do zapoznania się z naszym przewodnikiem na temat zwiększania szybkości i wydajności WordPress a oraz wyborem najlepszych edytorów kodu dla systemów Mac i Windows.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz na niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak WPBeginner jest finansowany, dlaczego to ma znaczenie i jak możesz nas wspierać. Oto nasz proces redakcyjny.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Najlepszy zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi - zbiór produktów i zasobów związanych z WordPressem, które każdy profesjonalista powinien mieć!

Reader Interactions

115 komentarzyZostaw odpowiedź

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Moinuddin Waheed says

    So much to accomplish with the help of functions.php
    I think this is the core of the WordPress and if we do too much to it, we may lose many core functionalities.
    having said this, using wpcode is a wise idea to insert anything for functionality without compromising the WordPress core.
    I have a question though, if wpcode doesn’t insert it’s code in the main functions.php then how it works?
    and if inserts it into the same, how updating wordpress doesn’t erase it?

    • WPBeginner Support says

      The code is stored in your database and the plugin hooks in the code in different ways depending on how you set it in the plugin.

      Administrator

  3. Jiří Vaněk says

    I’ve noticed that on some websites, the top part of the browser changes color, specifically on mobile Chrome. Do you have any tested snippet that accomplishes this?

  4. Ralph says

    A lot of great ideas explained in novice friendly way. Thanks! I will try adding featured images to RSS feeds. It never worked before for some reason and now it will :)

  5. Ben says

    This is a pretty dangerous idea. Query strings exist for the purposes of cache busting, aka, making sure the end user has the latest version your js and css files.

    Removing those is going to cause all sorts of issues for returning users down the line as their browser will assume nothing has changed and use their cached version rather than downloading the new one.

    If for some reason you need to target a specific file and remove the query string (which I’ve had to do) you can use this code snippet:

    // remove version from scripts and styles
    function remove_version_scripts_styles($src) {
    if (strpos($src, 'yourfile.js’)) {
    $src = remove_query_arg(’ver’, $src);
    }
    return $src;
    }
    add_filter(’script_loader_src’, 'remove_version_scripts_styles’, 9999);

  6. Gean Paulo Francois says

    Very useful article. I just saved this page offline so I can insert some of these with my websites. Anyway, should I add the codes to functions,php and not anywhere else?

  7. Hussain Badusha says

    Nice compendium of some useful tricks and functions for wordpress. I added quite a new things to my wordpress knowledge after going through here.

    I look forward even more from you if you wish to

  8. vivek says

    Nice article,

    Just have a doubt if I am supposed to add these codes in snippets plugin or somwhere in file? if its snippet plugin, it’s not working. Kindly put some light.
    Thanks

    • WPBeginner Support says

      You would add these codes as a custom plugin or more commonly in your functions.php file

      Administrator

  9. Miley Cyrus says

    Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot.

  10. John Dee says

    Almost NONE of these code snippets belong in your theme’s functions.php file. Only a few of them are related to the actual theme. Themes are for APPEARANCE. Create a PLUGIN for functionality. In any case, it would go in child theme’s functions.php file.

    • WPBeginner Support says

      Thank you for pointing this out, while we do mention site-specific plugins at the beginning of this article, we will be sure to look into making that statement clearer.

      Administrator

  11. Richard Yzenbrandt says

    Thank you so much for making this resource available. WP for Beginners is the best goto site on the web!

  12. alok patel says

    hey i am unable to add my post on specific page. when i write any blog post it shows in home page but i wanna also see in specific pages where i want to add. how i can out of from this problem. plz help me as soon as possible. if any video link thn plz share with reply. i m getting too much confused.

  13. DONALD says

    I am creating a form to collect data from my users.
    I have created the database from myphpAdmin
    I have created the form.
    I now created a new php.file in my child theme
    I referenced it in the form too using action = „name.php”
    Now i expect it to gather, peoples registration details.
    But clicking on submit on the form, says, page cannot be found.
    I dont know what i am not getting right.
    Please help me

  14. Shafiq Khan says

    Very useful post thanks.

    A question – Because you’re updating the functions.php of a theme.
    If you update the theme then you lose your tweaks.

    Is there a way around this? Is it just a cause of using a Child theme?

    Thanks

    • Lisa says

      Hi Shafiq,

      Any changes you make to a parent theme will be overwritten when you update it. It is good practice to work with a child theme when making changes to a theme you didn’t build that is going to be updated so that you can keep the changes you made.

    • Jan says

      I use the plugin 'My Custom Functions’ – it is simply adding all functions to the functions.php automatically – so no re-writing after every update needed :)

    • Jane Lawson says

      This is late, but you can also create a plugin for your site (e.g. „[Site name]’s custom plugin”). It does require a bit of expertise, however, since some functions clash with other plugins/the site theme.

  15. Al1 says

    Another one :

    // Remove query string from static files :
    function remove_cssjs_ver( $src ) {
    if( strpos( $src, ’?ver=’ ) )
    $src = remove_query_arg( 'ver’, $src );
    return $src;
    }
    add_filter( 'style_loader_src’, 'remove_cssjs_ver’, 10, 2 );
    add_filter( 'script_loader_src’, 'remove_cssjs_ver’, 10, 2 );

  16. Andrew says

    I tried #16 to add the post featured thumbnail to m RSS feed but when I tested it in mailchimp (paused my campaign and previewed) it appears that it has changed from „summary” to „full text”? Is this expected behaviour? I want to leave the emails (rss driven) as summary, and simply add the thumbnail featured image at the top.

    Thanks for any help, I can’t find this on google anywhere.

  17. Em Cloney says

    re: removing rss feed for static pages — is it correct that the txt one would replace in that code is 'url’ (with a page link, including ) and 'homepage’ (if you’d like it to say something else, like 'some other site’)?

  18. Mick O says

    Thanks for the helpful article. I really appreciate it. Can you possibly explain why the snippet to add Google analytics (#1) code includes the php declarations. If I have an existing functions.php file that is already defined with , do I need to include the markers again in the snippet? I’m trying to add other customizations into the functions.php and it’s getting hard to keep track.

  19. Luke Gibson says

    The one about the copyright date seems a little OTT when you could simply cut and paste in © 2006- and it would do exactly the same job, just replace 2006 with whatever static start date you wish. Or am I missing something?

  20. Zeeshan Arshad says

    Excellent, I was done with my theme and learning but there was much left. This post saved my day and of course I learnt many things as well.

    Best Wishes!

  21. Mark says

    Great set of tools. I immediately copied the guest author function as I saw it and will now disable a clumsy plugin I’ve been using. Do you have a function that will provide the post ID of the item being worked with in the editor? I’m trying to auto fill a form with media attachments for the current post but have only been able to get it to work in a custom meta-box but not in a thickbox . The thickbox returns all the media files for all the posts when I just want the current posts’s attachments.

  22. mommyblogger says

    Thanks for the great WordPress tips! I was hoping you could help me with an additional one?

    I’d like to prevent my tags/categories from spilling over onto another line by limiting the number of tags/categories that appear in the footer of my individual homepage posts. Is it possible to do this with the „the_excerpt”? I would also like the excerpt to be a „…read more” link and limit the number of characters in it. Here is the code it would need to be added to;

    $tags_list = get_the_tag_list( ”, __( ’, ’, 'mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( '<span class=”%1$s”>Tagged</span> %2$s’, 'mummyblog’ ), 'entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>

    Thanks!

  23. SteveEBoy says

    Like all the others have said below – just too good, a massive help for a newbie and very useful for learning too. Great site all round. Thanks.

  24. LambrosPower says

    one of the best tutorials i read. Many important topics pointed out and for sure i didn’t know most of them since i just started wordpress custom design.

  25. Xiaozhuli says

    This article is endlessly useful. I bookmarked it and often refer to it when updating my theme or trying to answer a question. Great job!

  26. Mohammad Yeasin says

    You guys are just awesome. You know what, wpbegineer is the first website for which i have a separate folder in my bookmark menu. Too good for a wp begineer. youe name suits ur personality. lolz. One day i would must do something special for you. Inshallah.
    The only problem i face is related post with thumbnail. your coder are not working. vDont know what to do. Whatever, Keep up the marvelous job. Love the site wpbegineer.

  27. AA says

    Great post! You obviously know a lot about wordpress coding so I’m hoping you can answer a question. How to you remove the date & time stamp from a wordpress feed-rss? I’ve looked everywhere and can’t find any information on this. I’m working on a wordpress „site” and do not have a use for the dates. I have already removed them from the posts & pages.

    Much thanks in advance!

    • Editorial Staff says

      Date is NOT optional for RSS feeds. It is a MUST because that is how posts / articles are organized (reverse chronological order). You can remove the display of dates from the template, but you cannot remove them from the XML.

      Administrator

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.