Zrobiłem własną usługę przesyłania dla mojej witryny, która jest niezależna od WP, ale używa WP do zapewnienia niskopoziomowych funkcji db i weryfikacji użytkownika. Aby to zrobić, dołączam wp-load.php do mojego głównego skryptu (Uploadify), ale wydaje się, że wypełnianie pamięci serwera niepotrzebnymi komponentami. Dzięki temu widzę błąd w moim skrypcie, który wydaje się wskazywać na zainstalowaną wtyczkę WP.
Jak mogę załadować tylko podstawowe komponenty WP i zignorować wtyczki? Czy to w ogóle możliwe?
Odpowiedzi:
Całkowite wyłączenie wtyczek oznacza utratę wielu zalet.
Istnieją dystrybucje wordpress, które idą dalej i wyrywają posty i linki itp., Ale zawsze będą opóźnione w stosunku do rdzenia WordPress i zwykle nie przetrwają tak długo.
Oto kilka rzeczy, które można zrobić
Krótki inicjał
Umieszczenie tego w pliku wp-config.php:
Lub zdefiniowanie go gdzieś przed załadowaniem w wordpressie, powinno skrócić proces ładowania i przywrócić go do minimum podstawowych funkcji.
Drugorzędne lekkie instalacje
Skonfiguruj drugą instalację wordpress, używając tylko wtyczek i motywów, które chcesz (jeśli istnieją). Następnie skonfiguruj plik wp-config.php, aby używał tych samych wartości katalogu treści i bazy danych wp.
Backpress
WordPress, oryginalny BBpress i glotpress, między innymi, są zbudowane wokół biblioteki BackPress. Możesz użyć tego zamiast WordPressa do wykonania swojej pracy, chociaż brakuje wielu interfejsów API i funkcji lub wymaga ponownej implementacji / przenoszenia
Tabele opcji
Chciałbym również pamiętać, że WordPress ładuje całą tabelę opcji do pamięci, aby zmniejszyć liczbę zapytań, jeśli zapisujesz tam duże wartości, wpłynie to na wydajność.
Wyjście wcześnie
Możesz także spróbować podłączyć się do wcześniejszych funkcji w procesie ładowania WordPress i wyjść z procesu PHP przed zakończeniem WordPress, ale nie mogę doradzić, jak bezpieczne byłoby to.
Selektywne ładowanie wtyczek
Jest też ten artykuł na temat selektywnego ładowania wtyczek , ale wymaga włamań do podstawowych plików wordpress
źródło
Użyj BackPress , ale mam małe zmiany, w których używam domyślnej instalacji i mniejszego źródła poprzez const.
patrz na
wp-settings.php
Ustaw const SHORTINIT na true w
wp-config.php
i zobacz szybki bieg.define( 'SHORTINIT', TRUE );
Oto pliki, które otrzymujesz:
źródło
Do tworzenia
is_user_logged_in()
icurrent_user_can()
pracy znalazłem podobną odpowiedź tutaj (komentarz Cant). Porównanie odpowiada tutaj odpowiedziom, ponieważ:Ręczne używanie
define('SHORTINIT', true)
+require('wp-load.php')
+ obejmuje:Ładowanie strony: 1,05 sek - dołączone pliki: 43 pliki
Porównywanie: TYLKO
require('wp-load.php')
:Ładowanie strony: 1,35 sek - dołączone pliki: 419 plików
Dobrym pomysłem było użycie względnego wywołania do katalogu zainstalowanego WP. Z niestandardowej wtyczki Wordpress „ROOT”, takiej jak:
Następnie wewnątrz mojej wtyczki index.php:
Po tym sprawdzanie poprawności użytkownika działa dla mnie. Dzięki ostatnim słowom @Anna Ericson z oryginalnego kodu:
źródło
Próbowałeś
define('SHORTINIT', true);
? Nie testowałem tego sam, ale wydaje się, że ładuje bardzo mało aspektów rdzenia WP, zachowując wystarczającą funkcjonalność, szczególnie jeśli wszystko, czego potrzebujesz, to radzenie sobie z bazą danych.źródło