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

Plik funkcji WordPress, znany jako functions.php, to potężne narzędzie dołączane do każdego motywu WordPress. Działa jak wtyczka, umożliwiając łatwe dodawanie własnego kodu do twojej witryny.

Używamy własnego kodu na naszych witrynach, gdy można użyć krótkiego fragmentu kodu. Ta wszechstronność i elastyczność WordPressa pozwala nam łączyć funkcjonalność kilku wtyczek w łatwy do zarządzania sposób.

W tym artykule podzielimy się niektórymi z tych praktycznych i przydatnych sztuczek dotyczących korzystania z pliku funkcji WordPress, pomagając ci lepiej wykorzystać twoją witrynę 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 zapisywanie własnego kodu w pliku funkcji nie jest dobrą praktyką.

Jeśli zaktualizujesz swój motyw, plik functions.php zostanie nadpisany i utracisz własne fragmenty kodu. Nie można wyłączyć fragmentu kodu bez jego usunięcia.

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.

Dlaczego polecamy WPCode?

  • Łatwe zapisywanie własnych fragmentów kodu bez konieczności edytowania plików rdzenia.
  • Automatycznie wstaw fragmenty kodu tam, gdzie są potrzebne
  • Każdy fragment kodu jest zapisywany osobno i można go indywidualnie wyłączyć.
  • Wbudowany mechanizm awaryjny wyłącza fragment kodu, jeśli powoduje on błąd na twojej witrynie.

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 nadać białą etykietę twojemu obszarowi administracyjnemu WordPress? Pierwszym krokiem jest dodanie własnego logo kokpitu.

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 to łatwo 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 WordPressie

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');

Więcej informacji na temat metody opartej na wtyczce można znaleźć w naszym przewodniku 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 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. Warto również zapoznać się z naszym przewodnikiem na temat wyświetlania kodu w WordPressie, aby łatwo udostępniać twoje fragmenty kodu, a także z naszymi eksperckimi wyborami najlepszych edytorów kodu dla komputerów Mac i Windows.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

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

114 komentarzyZostaw odpowiedź

  1. DANISH

    such a great and useful tricks.. :)

  2. Webtechideas

    Such a nice list of useful tricks. It will help both plugin and theme developers.

  3. ahmed

    In #14, isn’t that a instead of ?

  4. Mick O

    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.

    • Editorial Staff

      It includes opening php because it is closing PHP tag to allow you to paste plain HTML Google analytics code.

      Administrator

  5. Luke Gibson

    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?

    • Editorial Staff

      Yes, you can definitely do that. But if you are releasing this as part of a theme meant for distribution, then you can’t do that.

      Administrator

  6. Zeeshan Arshad

    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!

  7. DesignSkew

    In „Add Author Profile Fields”, the function you mentioned to echo is not working.

  8. Mark

    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.

  9. mommyblogger

    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!

  10. SteveEBoy

    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.

  11. LambrosPower

    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.

  12. Xiaozhuli

    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!

  13. Mohammad Yeasin

    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.

  14. AA

    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

      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

  15. Michele Welch

    Awesome post! Can’t wait to get started on the custom dashboard gravatar! Really exceptional post. :-)

  16. Phil

    Great article, I’ve bookmarked it for future reference. Just found wpbeginner by chance what a great resource, thanks!

  17. wparena

    it is really good that you compiled all impotent things at one place

  18. Mark Welburn

    Good stuff, bookmarked this already. Can see a few of these come to good use more than once. Cheers, Mark.

  19. Connor Crosby

    Just a note, be careful when you copy and paste the „end of excerpt” function. It showed a question mark instead of „…” since it was one character. I had to rewrite „…” for it show up.

  20. Martin

    Probably the best post about the use of functions.php. Thanks for the tricks and for saving our time.

  21. mark.

    I would suggest an addendum be made to Tip #3 mentioning the fact that this is not security in any way shape or form, and is definitely not an alternative to upgrading as people should.

    Hiding the version number is only beneficial to those of us who like to keep unnecessary junk out of the HEAD of your HTML document. Outside of that, it serves no purpose and should not be confused with security; to help illustrate that point: http://dd32.id.au/2010/07/31/what-version-of-wordpress-is-behind-that-website/

  22. helpin

    Could you tell me if I need to add these codes for every theme which my multi site have? Is there any there way which these codes automatically apply to the newly added themes?

    Thanks !

    • Editorial Staff

      You would have to add these to your theme’s functions.php file. So if it is a theme that is available on all networks, then only once. If there are custom themes being used on each network site, then you would have to do it on each….

      Administrator

  23. Andy

    You guys rock!!! Thanks for the awesome post.

    Best,

    Andy

  24. ddeja

    Thanks for those tips. Some are new for me. So I will be probably try to use them:)

    Thanks again.

  25. William

    Thanks for the insightful post. Registering sidebar widgets and customising the excerpt mode is going to be handy. Cheers

  26. Kate Mag

    Thanks for sharing extremely useful tricks. I didn’t know few tricks before, i know now!.

  27. Adam

    Okay, the dynamic copyright date in the footer is one of the coolest tricks for Wordpress I’ve come across. Always hate having to do that each year, but not anymore. Thanks for sharing that one!

  28. Susan

    Hi, I am trying to change the default gravatar. The option to choose my new gravatar is showing up however instead of my pic for my gravatar it is showing a broken pic link. I know the path works cause it does when I plug it in to the browser the pic comes up. I have also tried .gif, .png, .jpg and they are all broken. Also it is sized per my theme at 48px X 48px Can you help?

  29. Dave Z

    There are some good suggestions here. Implementation could be improved for a few of them.

    For instance, in #8 – Dynamic Copyright, it would probably be better to call the function during the publish_page and publish_post actions. Then, instead of printing the year to the screen, the value (year range) could be stored in the options table (with update_option()). In the theme, you would do something like: echo get_option( 'comicpress_copyright’, date( 'Y’ ) );. This would give the current year as the default date, or your preset range. The advantage here is that you eliminate the constant need to query the database for the years during every page load (since get_option can be configured to load automatically with the rest of the options). WordPress can already be heavy on database queries, no need to add an additional one if it can be avoided!

    #18 – Remove Login Errors is removing -all- login errors, which could be bad because it also omits notices about disabled cookies, etc. A more effective approach would be to have the function return:

    str_replace( array( 'Invalid username’, 'Incorrect password’ ), 'Invalid username or password’, $str );

    This keeps the user informed of potential errors while obfuscating which field the error actually occurred in. One thing to keep in mind is that if the username is correct, WordPress will auto-populate that field in subsequent login attempts. A hacker aware of WordPress operation would then know that the username was indeed valid. You can prevent this by commenting out the appropriate section in the wp-login.php file (lines 529-530 in version 2.9.2)–not ideal, I know, but there are no hooks at that point in the code.

    Nice tips. I like the Post Thumbnails demonstration.

  30. Abdullah

    Nice post.. very useful information.

    Thnkx wpbeginner for making us more professional in our field.

    Regards
    Mohummad Abdullah

  31. Zhu

    Thank you for the tips, I already implemented a few (like the custom Gravatar) and they work just fine!

  32. Sahus Pilwal

    Thanks for the extremely helpful tips. I wish I could find more extremely useful tricks/hack articles for WordPress!

    Cheers, Sahus

  33. graphicbeacon

    slight problem with NO. 14. Widget title starts with a h2 tag and ends with an h3- Wouldnt validate well methinks.

  34. Todd Santoro

    here is one for changing the login logo:

    function the_custom_login_logo() {
    echo ’
    h1 a { background-image:url(’.get_bloginfo(’template_directory’).’/images/custom-login-logo.gif) !important; }
    ’;
    }

    add_action(’login_head’, 'the_custom_login_logo’);

    • Todd Santoro

      Make sure you change the single quotes in this code to actuall single quotes as WP strips them in the comments so the PHP code is not executed. Better yet retype it and you will have no problem.

      Cheers!

  35. Kenton Bell

    I am really impressed with this list, better options than hacking away at the theme files that get lost in upgrades. Thank you.

  36. Raoni

    Hi,

    just an update, in item 4. Add a Custom Dashboard Logo, in WordPress 3 the „custom-logo.gif” now is a .png image.

    Great collection!!!!

  37. Andris

    That was a very useful post. I just implemented „4. Add a custom Dashboard Logo” to my Website.

  38. Todd Santoro

    Great post. I have this in my WP tool box now. It has everything a theme designer would need in one article. Thanks WPBeginner!

  39. Jake Goldman

    Great tips. Got a kick out of seeing a few of mine in there. :-) lots of new tips coming soon in my next article!

  40. Tony

    Finally! I know how to cure the incorrect comment count! Thanks, WPBeginner!

  41. DaveK

    Brilliance, I will be putting quite a few of these to good use.

    Congrats on the site guys you go from strength to strength, I usually manage to find something useful here.

    Keep up the good work.

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ę.