Како приказати ВордПресс Сидебар на не-ВордПресс Веб страницама
Док сам радио на свом најновијем пројекту, ДевГров Дисцуссионс, наишао сам на потребу уграђујем цео ВордПресс сидебар на не-ВордПресс сајт - конкретно а ббПресс форум. Пошто користим разне виџете за приказивање популарних порука и других динамичких садржаја, једноставно копирање и лепљење ХТМЛ-а не би било довољно. На крају, заиста постоје само два начина да се ово уради:
- Инцлуде иоур вп-лоад.пхп фајл у вашој апликацији и на крају учитајте целу ВордПресс да бисте добили приступ функцијама додатака
- Користите једноставно кеширање да бисте сачували бочну траку у ХТМЛ формату и укључили је у било коју другу апликацију, а затим је поново изградите по потреби када се објави нови садржај
Ако то није довољно јасно, прва опција је веома скупа у смислу упита за базу података и може значајно успорити ваш сајт. Друга опција захтева мало труда у имплементацији, али перформансе нема конкуренције.
Кеширање ВордПресс Сидебара
Пре него што можемо да напишемо своју функцију, морамо да схватимо тачно шта покушавамо да урадимо. Наш циљ је да кеширајте наш сидебар у текстуалну датотеку и ажурирајте тај кеш сваки пут када објавимо пост, промените тему или направите измене видгета на бочној траци. Пошто планирамо да користимо кеш за приказивање бочне траке на другој апликацији, морамо лако да избришемо кеш без икаквих лоших ефеката (не желимо да се наш сидебар разбије у било ком тренутку).
Да бисмо то постигли ефикасно, такође ћемо направите дневник наших кешираних датотека и користите то да одредите да ли ће кеш бити избрисан. Ако је тако, стварна датотека кеш меморије ће бити замењена следећи пут када неко посети ВордПресс сајт, обезбеђујући да се одговарајућа бочна трака увек приказује на обе апликације.
Креирање функција
Да бисте започели, отворите тему фунцтионс.пхп датотеку и додајте јој следеће функције:
фунцтион цацхе ($ таск, $ цацхеФиле, $ цацхеТиме = 21600) глобал $ цацхе; // Конфигуришемо датотеке и директоријуме: $ цацхеДир = ТЕМПЛАТЕПАТХ. "/ Цацхе"; $ цацхеФилеНаме = $ цацхеДир. "/ цацхе- $ цацхеФиле.ткт"; $ цацхеЛогФиле = $ цацхеДир. "/ цацхе-лог.ткт"; // Направите директоријум кеша ако не постоји (! Ис_дир ($ цацхеДир)) мкдир ($ цацхеДир, 0755); // Направите дневник датотека кеша са њиховим тренутним статусом (филе_екистс ($ цацхеЛогФиле)) $ цацхеЛог = унсериализе (филе_гет_цонтентс ($ цацхеЛогФиле)); елсе $ цацхеЛог = арраи (); иф ($ таск == 'старт') // Ако кеш постоји, стар је мање од 6 сати и није у реду за брисање, задржи га - иначе обнови кеш ако (филе_екистс ($ цацхеФилеНаме) && (тиме () - филемтиме) ($ цацхеФилеНаме)) < $cacheTime && $cacheLog[$cacheFile] == 1) $cache = false; else $cache = true; ob_start(); elseif($task == 'end' && $cache) // If caching, save file contents and update log file_put_contents($cacheFileName,ob_get_contents()); ob_end_flush(); $cacheLog[$cacheFile] = 1; file_put_contents($cacheLogFile,serialize($cacheLog)); elseif($task == 'purge') // Set cache to delete and update log $cacheLog[$cacheFile] = 0; file_put_contents($cacheLogFile,serialize($cacheLog)); function cache_purge() $cacheDir = TEMPLATEPATH."/cache"; $cacheLogFile = $cacheDir."/cache-log.txt"; if(file_exists($cacheLogFile)) $cacheLog = unserialize(file_get_contents($cacheLogFile)); else $cacheLog = array(); foreach($cacheLog as $key=>$ валуе) $ цацхеЛог [$ кеи] = 0; филе_пут_цонтентс ($ цацхеЛогФиле, сериализе ($ цацхеЛог));
Ово прво функционише, цацхе, је кључ за функционисање нашег кеша. У зависности од тога где се налази у вашој датотеци, функција ће подесити исправне датотеке и директоријуме, проверити да ли је кеш потребно изградити и ако је тако, чуваће излаз и ажурирати дневник кеша. Функција користи ПХП-ов излазни бафер за спремање било којег ХТМЛ-а генерисаног у текстуалну датотеку.
Друга функција се користи за чишћење свих кеш датотека и корисна је за додавање постојећих ВордПресс кука. Помоћу њега можемо направити да се кеш брише сваки пут када се ажурира наша тема, сачува се пост или се видгети на бочној траци ажурирају додавањем следећег на крају фунцтионс.пхп:
адд_ацтион ('свитцх_тхеме', 'цацхе_пурге', 10); адд_ацтион ('публисхинг_пост', 'цацхе_пурге', 10); адд_филтер ('видгет_упдате_цаллбацк', 'цацхе_пурге', 10);
За потпуну листу кукица, погледајте ВордПресс Плугин АПИ Референце.
Конфигурисање Сидебара
Сада када имате спремне функције, можете почети да кеширате сидебар. Отвори свој сидебар.пхп и додајте ову линију на почетак датотеке:
Ова функција ће почети да кешира бочну траку коју треба, у супротном неће ништа учинити. Због начина на који функционише функција излазног буфферинг-а ПХП-а, такође морамо затворити бафер на крају датотеке. Додајте овај ред на сам крај исте датотеке:
Након што додате те две линије, освежите свој блог. Нећете видети ништа у прегледачу, али проверите / цацхе директоријуму у фолдеру теме и требало би да видите две датотеке које почињу са цацхе-.
Коришћење кеша
Сада када сте креирали кеш датотеку, можете га користити у било којој апликацији која има приступ њој. То можете једноставно урадити користећи инцлуде_онце функција, али такође желим да будем сигуран да фајл постоји, само да би био безбедан:
Само проверите да ли је путања фајла исправна. Ако желите да подесите кеш да се избрише из спољне апликације, мораћете да укључите цацхе_пурге негде функционишете у скрипти и једноставно то назовите кад год је потребно. После тога, то је једноставно питање позива функције:
Закључак
Ова техника је заиста корисна за било коју ПХП апликацију, посебно када желите да прикажете динамички садржај без потребе да жртвујете перформансе. Користите га за убрзавање инсталације програма ВордПресс или за коришћење корисних битова (као што је бочна трака) на било којој другој веб-локацији или апликацији.
Напомена уредника: Овај пост је написао / ла Моњурул Долон фор Хонгкиат.цом. Моњурул је дизајнер интерфејса и веб девелопер, заснован на НИЦ-у, који свој пут кроз живот слободно бори. Он блогова на ДевГров.цом, гдје дијели савјете и ресурсе о развоју и дизајну веба.