- Czym jest WP JSON i jak go wyłączyć i usunąć
- Wyłącz interfejs API WP JSON REST za pomocą wtyczki Wyłącz interfejs API REST
- Kod, aby wyłączyć i usunąć wp-json i oembed w WordPress
- Czym jest XML-RPC i jak go wyłączyć i usunąć
- Wyłącz XML-RPC za pomocą wtyczki Disable XML-RPC Pingback
- Kod wyłączający i usuwający XML-RPC
- Czym jest Emoji i jak je wyłączyć i usunąć
- WordPress Plugin do wyłączania emotikonów - wyłącz emojis
- Kod do wyłączenia Emoji w WordPressie
- Czego nie należy usuwać z nagłówków
- Co jeszcze jest przydatne podczas konfigurowania WordPressa
Jeśli zainstalowałeś WordPressa od podstaw, zauważyłeś, że po wyjęciu z pudełka zapewnia dość zbędną funkcjonalność, na przykład wstawia wiele niepotrzebnych znaczników do głowy: wp-json , xmlrpc , pingback , kanoniczny , kanał , emoji , generator , manifest wml , link rel następny i poprzedni i tym podobne. Większość stron ich nie potrzebuje, dlatego powinni pozbyć się zbędnych śmieci.
- Czym jest WP JSON i jak go wyłączyć i usunąć
- Wyłącz interfejs API WP JSON REST za pomocą wtyczki Wyłącz interfejs API REST
- Kod, aby wyłączyć i usunąć wp-json i oembed w WordPress
- Czym jest XML-RPC i jak go wyłączyć i usunąć
- Wyłącz XML-RPC za pomocą wtyczki Disable XML-RPC Pingback
- Kod wyłączający i usuwający XML-RPC
- Czym jest Emoji i jak je wyłączyć i usunąć
- WordPress Plugin do wyłączania emotikonów - wyłącz emojis
- Kod do wyłączenia Emoji w WordPressie
- Usuń pingback, kanoniczny, meta generator, wlwmanifest, EditURI, shortlink, prev, następny, RSS, kanał, profil z nagłówków
- Skonfiguruj przekierowanie z / feed /
- Usuń style CSS .recentcomments
- Usuń dodatkowy kod z header.php
- Czego nie należy usuwać z nagłówków
- Co jeszcze jest przydatne podczas konfigurowania WordPressa
Czym jest WP JSON i jak go wyłączyć i usunąć
WP JSON to skrót od WordPress JSON REST API . Opis jest skomplikowany, więc wyjaśnię to w prostszy sposób - jest to funkcja, za pomocą której WordPress może być używany do pisania aplikacji na dowolnej platformie iw dowolnym języku, i używać tej aplikacji do zarządzania witryną - dodawać, zmieniać i usuwać zawartość, dostosowywać motywy, menu, widżety i inne. .
Ogólnie rzecz biorąc, z tego opisu powinno być dla ciebie jasne, że wp-json jest na razie całkowicie niepotrzebny na twojej stronie i powinien zostać wyłączony. Ponadto Yandex lubi wrzucać wp-jsona do indeksu jako podsekcję strony. Oczywiście jest to traktowane przez zamknięcie indeksu / wp-json / w pliku robots.txt, ale mimo to lepiej jest wyłączyć i skonfigurować wyjście błędu 404 Not Found pod tym adresem.
Co jest nieprzyjemne, jeśli nie zamkniesz / wp-json /, to będzie okazją dla wszystkich botów do znalezienia dość poufnych informacji o użytkownikach. Na przykład pod tym adresem http://example.com/wp-json/wp/v2/users/ zostaną podane informacje o użytkownikach witryny z ich danymi osobowymi: login, adres e-mail itp., Który jest tam wskazany.
Aby uniknąć publikowania informacji o użytkownikach WordPress bez wyłączania API WP REST, możesz użyć następującego kodu:
// Wyłącz funkcjonalność użytkownika w WP REST API add_filter ('rest_endpoints', funkcja ($ endpoints) {if (isset ($ endpoints ['/ wp / v2 / users'])) {unset ($ endpoints ['/ wp / v2 / users ']);} if (isset ($ endpoints [' / wp / v2 / users / (? P <id> [d] +) '])) {unset ($ endpoints [' / wp / v2 / users / (? P <id> [d] +) ']);} return $ endpoints;});Podczas wyłączania funkcji API REST WordPress pamiętaj, że niektóre popularne wtyczki używają go, na przykład Formularz kontaktowy 7 i Yoast seo . Dlatego jeśli nagle formularz opinii przestał działać, sprawdź, czy interfejs API REST jest wyłączony?
Istnieją dwa sposoby pozbycia się wp-json , wtyczki i kodu.
Wyłącz interfejs API WP JSON REST za pomocą wtyczki Wyłącz interfejs API REST
Aby wyłączyć wp-json, możesz użyć wtyczki Wyłącz interfejs API REST , ponieważ jej autor będzie aktualizował kod w zależności od możliwych zmian w przyszłych wersjach silnika WordPress.
Pobierz Wyłącz wtyczkę API REST z oficjalnego repozytorium WordPress.org.
Wtyczka WordPress do wyłączania wp-json - Wyłącz interfejs API JSON
Wtyczka oczywiście wyłączy funkcjonalność JSON REST API , ale nie zapisze sekcji / wp-json / na stronie. Dlatego ta opcja nie jest tym, czego potrzebujemy. Śmiało.
Kod, aby wyłączyć i usunąć wp-json i oembed w WordPress
Kod pochodzi głównie z różnych źródeł stąd , w tym te z powyższej wtyczki
/ * * Wyłącz wp-json * * https://sheensay.ru/?p=2044 * / // Wyłącz WP-API wersje 1.x add_filter ('json_enabled', '__return_false'); add_filter ('json_jsonp_enabled', '__return_false'); // Wyłącz WP-API w wersji 2.x add_filter ('rest_enabled', '__return_false'); add_filter ('rest_jsonp_enabled', '__return_false'); // Usuń informacje o interfejsie API REST z nagłówków HTTP i remove_action nagłówka sekcji ('xmlrpc_rsd_apis', 'rest_output_rsd'); remove_action ('wp_head', 'rest_output_link_wp_head', 10); remove_action ('template_redirect', 'rest_output_link_header', 11); // Wyłącz usuwanie filtrów API REST ('xmlrpc_rsd_apis', 'rest_output_rsd'); remove_action ('auth_cookie_malformed', 'rest_cookie_collect_status'); remove_action ('auth_cookie_expired', 'rest_cookie_collect_status'); remove_action ('auth_cookie_bad_username', 'rest_cookie_collect_status'); remove_action ('auth_cookie_bad_hash', 'rest_cookie_collect_status'); remove_action ('auth_cookie_valid', 'rest_cookie_collect_status'); remove_filter ('rest_authentication_errors', 'rest_cookie_check_errors', 100); // Wyłączenie usuwania zdarzeń API REST ('init', 'rest_api_init'); remove_action ('rest_api_init', 'rest_api_default_filters', 10, 1); remove_action ('parse_request', 'rest_api_loaded'); // Wyłącz osadzanie skojarzone z narzędziem do usuwania API REST ('rest_api_init', 'wp_oembed_register_route'); remove_filter ('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4); // Usunięcie oembed linków w usunięciu trafności sekcji głównej ('wp_head', 'wp_oembed_add_discovery_links'); // Jeśli zamierzasz wyświetlać oembed z innych witryn na swoim, skomentuj następujący wiersz remove_action ('wp_head', 'wp_oembed_add_host_js'); // Przekieruj z / wp-json / do głównego add_action ('template_redirect', function () {if (preg_match ('# / wp-json /.*? #', $ _SERVER ['REQUEST_URI'])))) {wp_redirect (get_option ('siteurl'), 301); die ();}});Kod został wstawiony do functions.php lub wtyczka mu (pożądane).
Wynik : całkowicie wyłączasz mechanizm wp-json na stronie, w wyszukiwaniu nie będzie żadnych stron śmieci, a strona http://example.com/wp-json/ da błąd 404 Not Found
Czym jest XML-RPC i jak go wyłączyć i usunąć
XML-RPC to protokół wywołania procedury, który używa XML do kodowania wiadomości i HTTP jako mechanizm transportowy. Mówiąc najprościej, jest to API dla WordPress, za pomocą którego można zdalnie zarządzać danymi witryny.
Nie tak jak WP JSON REST API ? Zgadza się, xmlprc jest jego przodkiem, którego obecnie używa WordPress. Dlaczego jeden jest zastąpiony innym - być może odpowiedź leży w masowości formatu XML w porównaniu z JSON . I to nie jest szczególnie ważne w świetle obecnego artykułu. Najważniejszą rzeczą jest pozbycie się xmlrpc bez szkody dla witryny.
Po prostu nie można usunąć pliku xmlrpc.php z katalogu głównego witryny - jest on używany przez niektóre popularne wtyczki, takie jak Jetpack .
Aby poprawnie rozwiązać problem, możesz użyć 2 opcji: wtyczki lub kodu.
Wyłącz XML-RPC za pomocą wtyczki Disable XML-RPC Pingback
Jeśli witryna WordPress jest bardzo wolna i nie rozumiesz dlaczego, radzę przejrzeć dzienniki błędów serwera i sprawdzić je:
[error] error connect () do unix: /var/www/php-fpm/www.sock nie powiodło się (11: Resource chwilowo niedostępny) podczas łączenia się z serwerem upstream, klient: 100.200.300.400, server: example.com, request: " POST /xmlrpc.php HTTP / 1.0 ", upstream:" fastcgi: // unix: /var/www/php-fpm/bitfeed.sock: ", host:" 193.1.65.238 "Zwróć uwagę na POST /xmlrpc.php. Jeśli jest obecny i pojawia się często, oznacza to, że witryna jest atakowana i musisz szybko zamknąć XML-RPC.
Nie można całkowicie wyłączyć XML-RPC - jest on używany przez niektóre wtyczki. Ale można zapobiec niektórym metodom, które pozwalają na ataki na witryny. A to pomaga wtyczce Wyłącz XML-RPC Pingback .
Pobierz Disable XML-RPC Pingback Plugin z oficjalnego repozytorium WordPress.org.
Wtyczka WordPress do wyłączania niebezpiecznych właściwości XML-RPC - Wyłącz XML-RPC Pingback
Kod wtyczki składa się również z pary filtrów i funkcji, które opiszę w następnym akapicie. I znowu polecam używanie tej wtyczki, ponieważ jej autor będzie śledził aktualizacje.
Kod wyłączający i usuwający XML-RPC
Jeśli chcesz zobaczyć sam kod, który wyłącza niebezpieczne metody XML-RPC lub po prostu nie chcesz instalować dodatkowych wtyczek, możesz użyć poniższego kodu.
/ * * Usuń niebezpieczne metody pracy XML-RPC Pingback * * https://sheensay.ru/?p=2044 * / add_filter ('xmlrpc_methods', 'sheensay_block_xmlrpc_attacks'); funkcja sheensay_block_xmlrpc_attacks ($ methods) {unset ($ methods ['pingback.ping']); unset ($ methods ['pingback.extensions.getPingbacks']); return $ method; } add_filter ('wp_headers', 'sheensay_remove_x_pingback_header'); funkcja sheensay_remove_x_pingback_header ($ headers) {unset ($ headers ['X-Pingback']); zwraca $ headers; }Istnieje również sposób na całkowite wyłączenie XML-RPC przy użyciu następującego filtru, ale nie polecam używania go, ponieważ jest on potrzebny do Jetpack i podobne wtyczki.
// Nie polecam używania, ponieważ niekompatybilny z wtyczką JetPack i podobnym add_filter ('xmlrpc_enabled', '__return_false');Wynik : wyłączono niebezpieczne metody pracy mechanizmu XML-RPC dla WordPress
Czym jest Emoji i jak je wyłączyć i usunąć
Od WordPress 4.2 funkcjonalność Emoji została zintegrowana z dystrybucją tego CMS. Emoji to zestaw ikon i emotikonów, zaimplementowanych w WordPressie przy użyciu biblioteki Twemoji z Twittera , i same w sobie nie są złe. Jeśli masz witrynę rozrywkową lub blog, w którym są one istotne, powinieneś rozważyć, czy usunąć je z witryny. Jednak większość innych stron, które nie korzystają z tej funkcji, powinna zostać wyeliminowana, ponieważ emotikony Emoji w WordPress są ładowane z zewnętrznych serwerów WordPress.org, a dodatkowy kod w głowie jest bezużyteczny.
Istnieją dwa sposoby wyłączenia Emoji, oddzielnej wtyczki i tylko kodu, i oba mają prawo do życia.
WordPress Plugin do wyłączania emotikonów - wyłącz emojis
Możesz to zrobić za pomocą prostej wtyczki Disable Emojis . Nie bój się tego, nie zawiera niepotrzebnych ustawień, tylko kilka filtrów, których kod faktycznie powielamy sobie w następnym akapicie.
Jaka jest zaleta wtyczek - ich autorzy z reguły śledzą aktualizacje WordPressa i dokonują niezbędnych zmian w funkcjonalności swoich wtyczek, zwalniając aktualizacje, w przeciwieństwie do nas :) Dlatego polecam używanie bieżącej opcji.
Pobierz wtyczkę Wyłącz emojis z oficjalnego repozytorium WordPress.org.
WordPress Plugin do wyłączania emotikonów - wyłącz emojis
Zauważ, że wtyczka nie wprowadza zmian w bazie danych, ponieważ format WordPress 4.2 ma format kodowania utf8mb4, co oznacza możliwość zapisywania znaków emoji na stronach i postach, niezależnie od obecności lub braku opcji Disable Emojis na stronie. Jednocześnie emotikony emoji będą wyświetlane tylko w najnowocześniejszych przeglądarkach.
Kod do wyłączenia Emoji w WordPressie
Poniżej znajduje się zestaw filtrów i haków (akcji), które mogą wyłączyć Emoji i pozbyć się zbędnych rzeczy w głowie. Kod jest całkowicie skopiowany z powyższej wtyczki i zdecydowanie polecam korzystanie z wtyczki, ponieważ jego autor będzie śledził aktualizacje, w przeciwieństwie do mnie :)
/ * * Wyłącz emoji * * https://sheensay.ru/?p=2044 * / add_action ('init', 'sheensay_disable_emojis'); funkcja sheensay_disable_emojis () {remove_action ('wp_head', 'print_emoji_detection_script', 7); remove_action ('wp_print_styles', 'print_emoji_styles'); remove_action ('admin_print_scripts', 'print_emoji_detection_script'); remove_action ('admin_print_styles', 'print_emoji_styles'); remove_filter ('the_content_feed', 'wp_staticize_emoji'); remove_filter ('comment_text_rss', 'wp_staticize_emoji'); remove_filter ('wp_mail', 'wp_staticize_emoji_for_email'); add_filter ('tiny_mce_plugins', 'sheensay_disable_emojis_tinymce'); add_filter ('wp_resource_hints', 'sheensay_disable_emojis_remove_dns_prefetch', 10, 2); } function sheensay_disable_emojis_tinymce ($ plugins) {if (is_array ($ plugins)) {return array_diff ($ plugins, array ('wpemoji')); } else {return array (); }} function sheensay_disable_emojis_remove_dns_prefetch ($ urls, $ relationship_type) {if ('dns-prefetch' == $ relationship_type) {` , „https: //sworg/images/core/emoji/2.2.1/svg/”); $ urls = array_diff ($ urls, array ($ emoji_svg_url)); } return $ urls; }Kod został wstawiony do functions.php lub wtyczka mu (pożądane).
Wynik : usunięto wynik emoji obsługi kodu javascript w sekcji head . Ale tutaj jest tak samo jak z wtyczką - emoji można zapisać w postach, ale teraz nie będą one wyświetlane we wszystkich przeglądarkach, ale tylko te, które je obsługują (z reguły w najnowocześniejszych).
/ * * Usuń inne niechciane meta z głowy * * https://sheensay.ru/?p=2044 * / // Usuń kod meta name = "generator" remove_action ('wp_head', 'wp_generator'); // Usuń link rel = "canonical" // Ten tag jest najlepiej wyświetlany za pomocą wtyczki Yoast SEO lub usuwania Pakietu SEO All In One ('wp_head', 'rel_canonical'); // Usuń link rel = "shortlink" - krótki link do aktualnego usuwania strony ('wp_head', 'wp_shortlink_wp_head'); // Usuń link rel = "EditURI" type = "application / rsd + xml" title = "RSD" // Używany do usuwania skutków naprawczych naprawdę prostych usług wykrywania ('wp_head', 'rsd_link'); // Usuń link rel = "wlwmanifest" type = "application / wlwmanifest + xml" // Używany przez funkcję usuwania programu Windows Live Writer ('wp_head', 'wlwmanifest_link'); // Usuń różne linki link rel // do głównej strony remove_action ('wp_head', 'index_rel_link'); // do pierwszego wpisu remove_action ('wp_head', 'start_post_rel', 10); // do poprzedniego postu remove_action ('wp_head', 'parent_post_rel_link', 10); // do następnego wpisu remove_action ('wp_head', 'nearby_posts_rel_link', 10); // Usuń połączenie z rodzicem remove_action ('wp_head', 'neighbor_posts_rel_link_wp_head', 10); // Usuń wyjście / feed / remove_action ('wp_head', 'feed_links', 2); // Usuń wyjście / feed / dla postów, kategorii, tagów i podobnych remove_action ('wp_head', 'feed_links_extra', 3); // Usuń niepotrzebną wtyczkę css WP-PageNavi remove_action ('wp_head', 'pagenavi_css');O / feed /. Jeśli chcesz dodatkowo dodać przekierowanie ze strony http://example.com/feed/ na stronę główną, możesz dodać następujący kod
/ * * Skonfiguruj przekierowanie ze strony rss / feed / home * * https://sheensay.ru/?p=2044 * / add_action ('do_feed', 'sheensay_redirect_feed', 1); add_action ('do_feed_rdf', 'sheensay_redirect_feed', 1); add_action ('do_feed_rss', 'sheensay_redirect_feed', 1); add_action ('do_feed_rss2', 'sheensay_redirect_feed', 1); funkcja sheensay_redirect_feed () {wp_redirect (site_url ('/')); wyjść; }Jeśli używasz Feedburner, dodaj zmiany do .htaccess
<IfModule mod_rewrite.c> RewriteEngine na RewriteCond% {REQUEST_URI} ^ /? (Feed. * | Komentarze. *) [NC] RewriteCond% {HTTP_USER_AGENT}! ^. * (FeedBurner | FeedValidator) [NC] RewriteRule. * Http: //feeds.feedburner.com/sheensay [L, NC, R = 302] </ IfModule>Jeśli użyjesz widżetu Ostatnie komentarze , WordPress zapisze w kodzie style css z klasą .recentcomment, które są dość trudne do zabicia własnym. Aby nie zmagać się z tym problemem, używamy następującego kodu.
/ * * Usuń style klas css .recentcomments * * https://sheensay.ru/?p=2044 * / add_action ('widgets_init', 'sheensay_remove_recent_comments_style'); funkcja sheensay_remove_recent_comments_style () {global $ wp_widget_factory; remove_action ('wp_head', tablica ($ wp_widget_factory -> widgety ['WP_Widget_Recent_Comments'], 'recent_comments_style')); } Następnie przejdźmy do czyszczenia header.php
Jeśli twój motyw WordPress ma header.php, otwórz go na przykład w dowolnym programie z podświetlaniem składni Notatnik ++ lub Daleki kierownik .
W sekcji głównej znajdź dodatkowy kod i usuń go.
Usuń dodatkowy kod z sekcji głównej
Na przykład na ekranie podświetliłem kod:
<link rel = "profile" href = "http://gmpg.org/xfn/11"> <link rel = "pingback" href = "<? php bloginfo ('pingback_url');?>"> Pierwsza linia to nagłówek wskazujący, że mikroformat jest używany na stronie. XFN . Jeśli go nie używasz (a najprawdopodobniej tak jest), usuń go.
W linii 2 znajduje się link wskazujący, który adres ma pozostawić pingwiny. Nie pozwalamy im odejść, więc usuwamy kod.
Nawiasem mówiąc, nie zapomnij sprawdzić, czy pingbacks są wyłączone. Aby to zrobić, przejdź do panelu administracyjnego w Ustawieniach - Dyskusja (https://example.com/wp-admin/options-discussion.php) i upewnij się, że pole wyboru Zezwalaj na powiadomienia z innych blogów (powiadomienia i linki zwrotne) jest zaznaczone. na nowe artykuły
Zapobiegaj powiadomieniom z innych blogów (powiadomienia i linki zwrotne) o nowych artykułach
Ta sama metoda może być również użyta do usunięcia innego kodu, który nie został usunięty, na przykład za pomocą filtrów
<link rel = "alternate" type = "application / rss + xml" title = "Feed" href = "/ feed" /> <link rel = "alternate" type = "application / rss + xml" title = "Feed comments "href =" / comments / feed "/> <link rel =" EditURI "type =" application / rsd + xml "title =" RSD "href =" / xmlrpc.php? rsd "/> <link rel =" wlwmanifest "type =" application / wlwmanifest + xml "href =" / wp-includes / wlwmanifest.xml "/>Nie zapomnij zrobić kopii zapasowych edytowalnych plików, aby cofnąć wszystko, jeśli usuniesz za dużo
W rzeczywistości wszystko, co powinno pozostać w nagłówku w header.php, jest podobne do następującego
<! DOCTYPE html> <html <? Php language_attributes (); ? >> <head> <meta charset = "<? php bloginfo ('charset');?>"> <meta name = "viewport" content = "width = szerokość urządzenia, początkowa skala = 1"> <? php wp_head (); ?> </ head>Czego nie należy usuwać z nagłówków
Niektórzy ludzie radzą także usunąć dns-prefetch:
// Usuwa link rel = 'dns-prefetch' href = '// v0.wordpress.com' remove_action ('wp_head', 'wp_resource_hints', 2);Nie zrobiłbym tego, ponieważ dns-prefetch ma za zadanie przyspieszyć ładowanie stron ze źródeł zewnętrznych, a raczej zasobów znajdujących się na nich. Pod adresami określonymi w dns-prefetch przeglądarka wykona wstępny rezolv, który w wolnym Internecie może pokazać się szczególnie dobrze.
To sprzątanie się skończyło. Następnie przejdź przez dodatkowe elementy ustawień, które mogą być przydatne.
Co jeszcze jest przydatne podczas konfigurowania WordPressa
Następnie lista wskazówek, których musisz użyć, aby zoptymalizować witrynę:
- Automatyczne ustawianie tytułu Last Last
- Konfigurowanie wtyczki buforującej WP Super Cache
- EWWW Image Optimizer - wtyczka do kompresji obrazów png, jpeg, gif bez utraty jakości
- Atrybut Auto-Alt Używamy SEO Friendly Images . Wtyczka nie była aktualizowana przez 2 lata, jednak nadal działa poprawnie i jest popularna. Osobiście nie uważam tego elementu za absolutną konieczność, ponieważ każdy obraz powinien mieć unikalny rejestr alt, a nie ten w tytule artykułu, ale być może ten element będzie dla kogoś ważny.
- Przekieruj z https na http . Lepiej jest, gdy przekierowanie jest wykonywane przez serwer, a nie przez WordPress, dzięki czemu usuwamy niepotrzebne obciążenie systemu.
Zmiany są dodawane do .htaccess w katalogu głównym serwisu, na samym początku pliku <IfModule mod_rewrite.c> RewriteEngine On RewriteCond% {SERVER_PORT} ^ 443 $ [OR] RewriteCond% {HTTPS} = na RewriteRule ^ (*) $ http: // example.com/$1 [R = 301, L] </ IfModule>http://example.com zmień na swój.
Ru/?
Ru/?
Ru/?
Ru/?
C> RewriteEngine na RewriteCond% {REQUEST_URI} ^ /?
Ru/?
Org/xfn/11"> <link rel = "pingback" href = "<?
Php bloginfo ('pingback_url');?
Php?