Сышышь ты, выходи сюда,
поговорим !

Zoptymalizuj nagłówek WordPress i usuń niepotrzebne elementy.

Z pewnością ktoś, kto zastanawiał się nad optymalizacją bloga na wordpressie lub już go spotkał, wie o zamianie funkcji nagłówka na podobną wartość. Oznacza to, że zamiast funkcji nagłówka używana jest podobna wartość, na przykład charset = UTF-8 jest wskazany w miejscu bloginfo („zestaw znaków”). Wcześniej ten przewodnik optymalizacji bazy danych był używany dość często, ale teraz uważa się, że wydajność podczas proponowanej akcji nie jest tak duża, ponieważ większość wartości nagłówków wordpress jest pobieranych z bazy danych w celu uzyskania do niej pojedynczego dostępu. Mimo to nadal chcę zagłębić się w temat optymalizacji nagłówków wordpress, ponieważ jest kilka bardzo interesujących punktów, ale znalazłem odpowiedzi na nie w tym artykule.

Mimo to nadal chcę zagłębić się w temat optymalizacji nagłówków wordpress, ponieważ jest kilka bardzo interesujących punktów, ale znalazłem odpowiedzi na nie w tym artykule

Spójrz uważnie na kod HTML na blogu wordpress, w obszarze głowy, porównaj go z plikiem header.php, możesz zobaczyć, że oprócz powyższych stylów CSS i skryptów Javascript jest znacznie więcej linii. Te linie pojawiają się tam, gdy używasz wtyczek, które dodają własne skrypty i style do HTML, zdarza się, że wynikowy kod jest wystarczająco duży.

Teraz, jeśli weźmiemy pod uwagę jedną z często używanych delimitacji wtyczek na stronach WP-PageNavi, która doskonale spełnia swoje zadanie, ale w pracy zapisuje własny plik stylu CSS. A jeśli to możliwe, podczas optymalizacji witryny pożądane jest połączenie pewnej liczby plików CSS i posiadanie jednego. Ale nie wszystko jest tak proste, jak się wydawało na pierwszy rzut oka, nie można po prostu dodać niezbędnych linii do pliku style.css, ponieważ nie można uwolnić się od wywoływania stylów wtyczek bez dezaktywacji WP-PageNavi.

Jak się okazało za pomocą haków funkcji wp_head, zaimplementowano większość „dodatkowych wkładek” potrzebnych do bloku głowicy. Najprawdopodobniej można go znaleźć w pliku kodu szablonu header.php . I nie możesz go po prostu usunąć, ponieważ z pewnością pociągnie to za sobą pewne konsekwencje, które mogą negatywnie wpłynąć na pracę Twojego bloga, ponieważ znikną nie tylko „dodatkowe wstawki”, ale i inne, bez których nie możesz tego zrobić.

Możesz przejść w drugą stronę, dezaktywować niektóre „wstawki” bez usuwania funkcji wp_head . Używamy następującego algorytmu.

1) Musisz uważnie przejrzeć główny plik php wtyczki, której haczyki chcesz usunąć. Znajdź tam następującą konstrukcję:

add_action ('wp_head', 'plugin_function_here');

2) Aby prawidłowo pozbyć się tego połączenia, dodaj następujący wiersz do pliku functions.php:

remove_action ('wp_head', 'plugin_function_here');

3) Zapisz szablon i sprawdź, co mamy.

Występują także wyjątkowe przypadki, w których użycie remove_action dla wp_head () nie działa. Przytoczę przykład WP-PageNavi (wersja 2.5.0), nie ma wyraźnego wywołania funkcji w wp_head (), mimo to wtyczka ładuje swój plik stylu. Uważnie przyjrzyj się oryginalnemu kodowi wp-pagenavi.php, istnieje taka funkcja „Kolejkuj arkusze stylów PageNavi”, która dodaje style poprzez:

add_action ('wp_print_styles', 'pagenavi_stylesheets');

Dodajemy następujący wiersz do pliku funkcji fuctions.php, aby pozbyć się tego połączenia:

remove_action ('wp_print_styles', 'pagenavi_stylesheets');

W pracy z niepotrzebnymi połączeniami i hakami sprawdzana jest pewna zasada - szukasz niezbędnej funkcji i wyłączasz ją.

Możesz pozbyć się innych niepotrzebnych elementów, których nie używasz, stosując hacki do functions.php, na przykład:

remove_action ('wp_head', 'feed_links_extra', 3); // linki do dodatkowych kategorii rss remove_action ('wp_head', 'feed_links', 2); // łączy się z głównym narzędziem do usuwania rss i comments ('wp_head', 'rsd_link'); // dla usuwania istotnie usługi Really Simple Discovery ('wp_head', 'wlwmanifest_link'); // dla Windows Live Writer remove_ action ('wp_head', 'wp_generator'); // usuwa wersję wordpress // usuwa różne linki podczas wyświetlania postu - następny, poprzedni wpis, oryginalny adres URL itp. remove_action ('wp_head', 'start_post_rel_link', 10.0); remove_action ('wp_head', 'index_rel_link'); remove_action ('wp_head', 'rel_canonical'); remove_action ('wp_head', 'nearby_posts_rel_link_wp_head', 10, 0); remove_action ('wp_head', 'wp_shortlink_wp_head', 10, 0);

Jest jedno zastrzeżenie, niektóre funkcje mogą po prostu nie działać w zależności od wersji WordPressa. Przeprowadziłem testy na wp 3.0.4, można znaleźć odpowiednie funkcje w wp-includes / default-filters.php.

Możesz przejść jeszcze dalej w proces optymalizacji. Zdarza się, że szablony blogów mogą wywoływać JavaScript jQuery przez wp_head () w tym samym czasie, co inne podobne skrypty poza wp_head (). Aby uniknąć niepotrzebnych wywołań, wystarczy pozbyć się jQuery z wp_head (), ale okazało się, że nie jest to takie proste. Mechanizm usuwania Employment ('wp_head', 'jquery'); nie działa, ale na szczęście było inne rozwiązanie:

wp_deregister_script ('jquery');

Po umieszczeniu go w functions.php, w administracyjnym panelu kontrolnym wordpres, niektóre skrypty odpowiedzialne za menu rozwijane i kilka innych funkcji przestają działać. Po kilku testach autorowi oryginalnego artykułu udało się znaleźć interesujące rozwiązanie, dodał odpowiednie wiersze nie do pliku functions.php, ale do header.php:

<? php wp_deregister_script ('jquery'); ?&gt; <? php wp_head (); ?>

Zrobiłem trochę inaczej - dodałem warunek w functions.php

if (! is_admin ()) wp_deregister_script ('jquery');

Wszystko działa!

Okazuje się, że dzięki danych małych hacków można skutecznie pozbyć się elementów w nagłówku, których nie używasz, a także łączyć style i skrypty w jeden plik.

Dla nagłówka jeszcze jeden mały hack:

remove_action ('wp_head', 'wp_syntax_head');

Umożliwia usunięcie połączenia plików stylów w celu zaznaczenia w tekście kodu programu, zawartość wp-syntax.css nie jest zbyt duża i można ją łatwo umieścić w zwykłym pliku stylu.

Źródło

Php wp_deregister_script ('jquery'); ?
Gt; <?
Php wp_head (); ?