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.
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ęć.
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:
- How to Add These Code Snippets to Your Website
- Remove WordPress Version Number
- Add a Custom Dashboard Logo
- Change the Footer in WordPress Admin Panel
- Add Custom Dashboard Widgets in WordPress
- Change the Default Gravatar in WordPress
- Dynamic Copyright Date in WordPress Footer
- Randomly Change the Background Color in WordPress
- Update WordPress URLs
- Add Additional Image Sizes in WordPress
- Add New Navigation Menus to Your Theme
- Add Author Profile Fields
- Adding Widget-Ready Areas or Sidebars in WordPress Themes
- Manipulate the RSS Feed Footer
- Add Featured Images to RSS Feeds
- Hide Login Errors in WordPress
- Disable Login by Email in WordPress
- Disable Search Feature in WordPress
- Delay Posts in RSS Feed
- Change Read More Text for Excerpts in WordPress
- Disable RSS Feeds in WordPress
- Change Excerpt Length in WordPress
- Add an Admin User in WordPress
- Disable Language Switcher on Login Page
- Show the Total Number of Registered Users in WordPress
- Exclude Specific Categories From RSS Feed
- Disable URL Links in WordPress Comments
- Add Odd and Even CSS Classes to WordPress Posts
- Add Additional File Types to Be Uploaded in WordPress
- Change Sender Name in WordPress Emails
- Add an Author Info Box in WordPress Posts
- Disable XML-RPC in WordPress
- Automatically Link Featured Images to Posts
- Disable Block Editor in WordPress
- Disable Block Widgets in WordPress
- Display the Last Updated Date in WordPress
- Use Lowercase Filenames for Uploads
- Disable WordPress Admin Bar on Frontend
- Change Howdy Admin Text in Admin Area
- Disable Code Editing in Block Editor
- Disable Plugin / Theme File Editor
- Disable New User Notification Emails
- Disable Automatic Update Email Notifications
- Add a Link to Easily Duplicate a Post
- Remove Welcome Panel From the WordPress Admin Dashboard
- Add a Featured Image Column for Posts in WordPress Admin
- Block WordPress Admin Area for Everyone Except Administrators
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.
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.
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”.
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/.
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.
2. Dodaj własne logo kokpitu
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.
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:
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.
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.
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.
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.
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.
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.
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.
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:
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.
29. Zmiana nazwy nadawcy w e-mailach 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.
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:
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.
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.
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.
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.
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”.
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”.
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.
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.
Moinuddin Waheed
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
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
Jiří Vaněk
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?
WPBeginner Support
We do have a guide for this, you can see our guide below:
https://www.wpbeginner.com/wp-tutorials/how-to-change-the-color-of-address-bar-in-mobile-browser-to-match-your-wordpress-site/
Administrator
Jiří Vaněk
Thank you. I tried it on my own website and it works perfectly. Although only in Chrome, but it works.
Ralph
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
WPBeginner Support
Glad to hear you found our tricks helpful
Administrator
Ben
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);
Gean Paulo Francois
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?
WPBeginner Support
Correct, these codes are for your functions.php file.
Administrator
Hussain Badusha
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
WPBeginner Support
Glad you found our guide helpful
Administrator
Satinder Satsangi
Oh WoW,
This is lifesaver most of the times, would like to know more about useful functions.
WPBeginner Support
Glad you found our guide helpful
Administrator
vivek
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
You would add these codes as a custom plugin or more commonly in your functions.php file
Administrator
Beulah Wellington
Thank you for this tutorial. I learned a lot. I will be reading it again.
WPBeginner Support
You’re welcome, glad our guide can continue to help you
Administrator
Ali Jahani
Hi
Thanks a lot of….
wpbeginner Is god team
WPBeginner Support
You’re welcome, glad you like our content
Administrator
VISHAL CHOWDHRY
Superb Article.
Waiting for more of this
WPBeginner Support
Thank you, glad you liked our content
Administrator
Miley Cyrus
Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot.
WPBeginner Support
Glad our article could be helpful
Administrator
John Dee
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
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
Suman Samanta
Nice information for a new bloggers. It is really helpful.
Richard Yzenbrandt
Thank you so much for making this resource available. WP for Beginners is the best goto site on the web!
alok patel
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.
DONALD
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
marvin N N
is there a plugin one can use to customise a theme’s default menu setting to suit your taste???
Sazzad Hossain
Thanks for this codes.
Shafiq Khan
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
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
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
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.
Neil
Excellent post – thank you for the tips & tricks. They are all very helpful
Karakaplan
How to use these above with child theme functions file?
Minhaz
Nothing difference with parent or child theme’s functions.php
Joe
I’ve not done much with the functions file so it was good to see this article.
Thanks.
Jorge Rosa
Great snippets. Very handy and useful. Thank You!
sriganesh
this is best site for wordpress
WPBeginner Support
Thanks for the kind words
Administrator
Bilal
will you tell me a most easy book for wordpress.
i am very new in this field .
thanks in advance
Al1
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 );
siva
Great post, Could provide all wordpress function with example
shojib
This is the best blog for Wordpress users.
Parveen
Great post!!!
I am a newbie and looking for such tricks.
Thanks.
Deepak Kanyan
Really a nice blog. i had learn lot of things from here thanks admin.
Andrew
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.
WPBeginner Support
You can try replacing get_the_content() with get_the_excerpt().
Administrator
Em Cloney
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’)?
Mohan Manohar
This is huge list and great help. would like to know the first part of twitter counter code is to be pasted in function.php or directly into texty widget of theme.
grafx
There is an easier way to remove WordPress Version Number…
remove_action(’wp_head’, 'wp_generator’);