Преписивање УРЛ-ова у ВордПресс саветима и додатцима
Најновије исправке за ВордПресс омогућиле су програмерима да брзо прилагоде своју личну страницу. Једноставно је ажурирати подручја ваше теме, замијенити видгете у бочној траци, па чак и написати властите прилагођене функције ПХП кода. Простор је огроман - и једна област популарности је преписивање прилично УРЛ пермалинкса.
Постоји неколико метода које можете користити за ажурирање дефаултног ВордПресс система за преписивање. У овом туторијалу ћу подијелити неколико примјера и показати колико једноставан процес може бити. Потребно вам је неко разумевање ПХП-а да бисте пратили шта се дешава у коду, али је тако лако копирати и залијепити у властити предложак, практично нема посла.
Ундерстандинг ВП_Реврите
Ако сте уопште упознати са мод_реврите на Апацхе серверима, онда ћете преузети ВордПресс синтаксу за преписивање. Њихов систем је још увек изграђен на врху .хтаццесс али сва правила су кодирана у ПХП-у. Ово заправо чини процес мало лакшим јер имамо више контроле над писањем властитих УРЛ-ова.
Препоручујем да скопирате $ вп_реврите страницу класе јер има много информација о теми. Постоје чак и мали примери на које можемо указати да би све било лакше разумети. Већина кода може бити написана директно у вашу тему фунцтионс.пхп филе. Почнимо са прегледом подразумеваних преписивања која су већ укључена у ВордПресс.
Садржај правила $ вп_реврите->
Декларацијом $ вп_реврите
класа као глобална имамо приступ свим интерним подацима. Када додајете своја правила, они се додају у низ са именом $ вп_реврите-> правила
. Важно је запамтити ову варијаблу јер ћете вероватно морати да референцирате податке много пута током развоја.
Правила); ?>
Додао сам овај блок кода у моју тему паге.пхп филе. Он ће испоручити велики низ података који изгледа као велики неред. Али ако Виев Соурце на вашој страници је заиста лако видети која су правила за преписивање усклађена са именом датотеке. На пример, погледајмо правила за преписивање категорија:
[цатегори /(.+?)/?$] => индек.пхп? цатегори_наме = $ матцхес [1]
Бит на лијевој страни у заградама је наш Апацхе РевритеРуле за тражење. Почевши од одељка /категорија/ слиједи било који низ знакова. Ако се то подудара, сервер зна референцу индек.пхп? цатегори_наме =
док замењује варијаблу на крају.
Подешавање прилагођених дозвола
Толико је садржаја потребно прећи у $ вп_реврите класи. Многе друге особине се могу референцирати, као што је $ вп_реврите-> цатегори_басе
или $ вп_реврите-> аутхор_басе
за повлачење подразумеваних структура УРЛ-а за ове странице. Али, осим повлачења ВП-ових подразумеваних подешавања, можемо да правимо и сопствена правила.
Обнова базе аутора
Када уђете на страницу за подешавања Пермалинкс, имате опцију ресетовања базе и категорија. Међутим, опција за поништавање базе аутора је необична.
Али можемо користити адд_реврите_руле ()
из ВордПресс 'цодек-а да би се интегрирале неке нове поставке. У овом случају заменио сам / аутор / са / вритер / али можете користити било коју базу коју желите. Осим тога, копирао сам неке друге преусмерења за странице аутора и РСС феедове. Овај блок кода можете додати у датотеку фунцтионс.пхп.
адд_ацтион ('инит', 'адд_аутхор_рулес'); фунцтион адд_аутхор_рулес () адд_реврите_руле ("писац / ([^ /] +) /?", "индек.пхп? аутхор_наме = $ одговара [1]", "топ"); адд_реврите_руле ("вритер / ([^ /] +) / паге /? ([0-9] 1,) /?", "индек.пхп? аутхор_наме = $ матцх [1] & пагед = $ матцхес [2] "," врх "); адд_реврите_руле ("писац / ([^ /] +) / (феед | рдф | рсс | рсс2 | атом) /?", "индек.пхп? аутхор_наме = $ одговара [1] & феед = $ одговара [2]", " на врх ”); адд_реврите_руле ("писац / ([^ /] +) / феед / (феед | рдф | рсс | рсс2 | атом) /?", "индек.пхп? аутхор_наме = $ одговара [1] & феед = $ одговара [2]" , "врх");
Ова функција се може приступити чак и без коришћења променљиве $ вп_реврите. Неки програмери воле овај метод јер је једноставнији од хард-кодирања са својствима класе. Међутим, приметио сам да овај метод није увек поуздан за неке ВордПресс инсталације. Заправо постоји друга опција за додавање ових правила на куку након испирања .хтаццесс (види испод).
Аутхор Басе усинг генерате_реврите_рулес
Пишући за овај метод, опет ћемо требати глобалну $ вп_реврите класу. Затим сам подесио нову променљиву под називом $ нев_рулес
која садржи асоцијативни низ података. Мој пример испод кода само преписује за основни одељак странице аутора.
фунцтион генерате_аутхор_реврите_рулес () глобал $ вп_реврите; $ нев_рулес = арраи ("вритер / ([^ /] +) /?" => "индек.пхп? аутхор_наме =". $ вп_реврите-> прег_индек (1)); $ вп_реврите-> рулес = $ нев_рулес + $ вп_реврите-> правила;
Али ако желимо да укључимо више страница и РСС феедове, можемо појачати низ. Имате могућност да креирате ПХП функцију за гурање података о асоцијативном низу који су можда превише сложени. Могли бисмо такође подијелити блокове података путем зареза, понашајући се као одвојени ентитети у низу. Погледајте мој ажурирани код поново написан у датотеци фунцтионс.пхп.
фунцтион генерате_аутхор_реврите_рулес () глобал $ вп_реврите; $ нев_рулес = арраи ("вритер / ([^ /] +) /?" => "индек.пхп? аутхор_наме =". $ вп_реврите-> прег_индек (1), "вритер / ([^ /] +) / паге /? ([0-9] 1,) /? "=>" Индек.пхп? Аутхор_наме = ". $ Вп_реврите-> прег_индек (1)." & Пагед = ". $ Вп_реврите-> прег_индек (2), "вритер / ([^ /] +) / (феед | рдф | рсс | рсс2 | атом) /?" => "индек.пхп? аутхор_наме =". $ вп_реврите-> прег_индек (1). "& феед =". $ вп_реврите-> прег_индек (2), "вритер / ([^ /] +) / феед / (феед | рдф | рсс2 | атом) /?" => "индек.пхп? аутхор_наме =". $ вп_реврите- > прег_индек (1). "& феед =". $ вп_реврите-> прег_индек (2)); $ вп_реврите-> рулес = $ нев_рулес + $ вп_реврите-> правила;
Само запамтите да ниједна од ових метода неће радити све док не испразните оригинална правила за преписивање. Морат ћете то учинити сваки пут када направите промјене у овим функцијама, али након тога ће се ваша нова правила задржати на неодређено вријеме.
Испирање правила преписивања
Кад год извршите ажурирање кода за преписивање УРЛ-а, промјене се не примјењују одмах. Морате испразнити правила .хтаццесс реврите тако да ће ваш нови код бити додан. Међутим, извођење овог на свакој страници инит је изузетно расипно јер пише у базу података и хард-рефресхес .хтаццесс датотеку.
Бољи начин је да приступите страници пермалинка у админ панелу и поново сачувате промене. Ово увек позива флусх_реврите_рулес тако да никада не морате да бринете о корисницима на фронту који имају проблема са учитавањем. Потребно је само једно време да поново сачувате страницу и ажурирате сва правила у вашем систему. Али ако ово не успије, можете покушати назвати $ вп_реврите-> флусх_рулес ();
Коришћење правила која нису ВП
Унутар $ вп_реврите
класа имамо приступ десетинама некретнина. Једна од значајнијих опција је $ вп_реврите-> нон_вп_рулес
који сакупља низ преусмеравања која не погађају индек.пхп датотеку.
Ово се најчешће користи у развоју ВордПресс плугин-а. Можете да притиснете одређени прилагођени тип УРЛ-а (као што је / календар / јун-2012 /
) у позадину вашег веб сајта (/вп-цонтент/плугинс/цалендарплуг/мисцрипт.пхп
). Али, наравно, ту су и друге употребе за овај асоцијативни низ прилагођених правила за писање, осим додатака. Дао сам одличан пример у доле наведеном контексту.
Маскирање датотека датотека
Ово је заједнички приједлог који често видим на ВордПресс дискусијама. Идеално би било да се позовемо на неке датотеке унутар / вп-цонтент / тхемес / митхеме /
фасцикла са елегантнијом УРЛ адресом. Обратите пажњу на то да ће за промену структуре директоријума бити потребан другачији скуп ВордПресс преписивања.
ВордПресс интерни систем за преписивање увек гура садржај ка једном фајлу за усмеравање. У подразумеваном случају користимо индек.пхп заједно са било којим додатним низом података упита. Али за скривање нашег стандардног директоријума предложака (/ вп-цонтент / тхемес / митхеме / *
) потребно је да прикажемо много различитих датотека.
адд_ацтион ('генерате_реврите_рулес', 'тхемес_дир_адд_ревритес'); фунцтион тхемес_дир_адд_ревритес () $ тхеме_наме = нект (експлодира ('/ тхемес /', гет_стилесхеет_дирецтори ())); глобал $ вп_реврите; $ нев_нон_вп_рулес = арраи ('цсс /(.*)' => 'вп-цонтент / тхемес /'. $ тхеме_наме. '/ цсс / $ 1', 'јс /(.*)' => 'вп-цонтент / тхемес / '. $ тхеме_наме.' / јс / $ 1 ',' имагес / вордпресс-урлс-реврите /(.*) '=>' вп-цонтент / тхемес / '. $ тхеме_наме.' / имагес / вордпресс-урлс-реврите / $ 1 ',); $ вп_реврите-> нон_вп_рулес + = $ нев_нон_вп_рулес;
Написао сам нову функцију тхемес_дир_адд_ревритес ()
да повуче све главне садржаје из ових дужих УРЛ-ова и преусмери их у позадину. Обратите пажњу на то да користимо ову другу мистериозну особину класе $ вп_реврите нон_вп_рулес
. Према документима, ово су правила која се не односе на ВП-ову датотеку индек.пхп и биће обрађена на серверу.
Оно што је тако добро у овим правилима која нису ВП је да још увек можете веома лако да управљате старијом методом УРЛ-а. Ништа вас не спречава да се повежете са:
/вп-цонтент/тхемес/митхеме/имагес/вордпресс-урлс-реврите/лого.јпг
.
Али изгледа много љепше ако можете да наведете:
/имагес/вордпресс-урлс-реврите/лого.јпг
уместо тога.
Корисни алати и додаци
Постоји само неколико алата које можете користити ако сте заглавили са кодирањем сопствених лепих УРЛ-ова. Процес је веома тешко схватити, тако да се не обесхрабрујете ако се борите пар недеља. Осећам да ће вам садржај бити лакши док проводите више времена.
Али, да бисте почели, погледајте неке од ових практичних алата за преписивање и додатака. Вероватно вам неће требати све, али је сјајно пронаћи тако велику базу девелопера која ради око ВП преписивања.
Монкеиман Реврите Анализер
Када први пут скочите у правила за преписивање, овај додатак је обавезан. То заправо не мења нити једно правило за ваш сајт - он вам само дозвољава да тестирате код и видите које преусмеравања иду на које странице. Чак ће радити за тестирање прилагођених варијабли упита за било које прилагођене типове постова.
АскАпацхе РевритеРулес Виевер
Ово је слично горе наведеном додатку, осим што вам не дозвољава да тестирате сопствена правила. Уместо тога, овај додатак ће приказати сва стандардна ВП правила на вашем веб сајту и на које место преусмеравају. Ово ће укључити све главне особине $ вп_реврите
као што су ваше поставке пермалинк-а и базе / категорије / ознаке.
ВП хтаццесс Цонтрол
Овде имате другачији скуп правила за преусмеравање нових страница. Додатак има сопствени админ панел где можете да мењате променљиве као што су база аутора, базе страница, па чак и да додате сопствена прилагођена правила .хтаццесс.
Овај метод је другачији у односу на изградњу сопственог коришћења помоћу вп_реврите. Међутим, може бити лакше за техничаре који заиста знају веб сервере и осећају се удобније писати директно у .хтаццесс.
Тестирање правила за преписивање
Ово заправо није ВордПресс плугин, али је дефинитивно један од практичних алата за чување датотека. Можете копирати правила за преписивање и тестирати их за вашу веб-локацију без икаквог уређивања .хтаццесс датотеке. Ово је савршена метода за уклањање грешака из ваше синтаксе пре покретања уживо на Вебу.
ДВ РеВрите
ДВ Реврите је врло једноставан плугин који креира 3 јединствена УРЛ-а одмах након инсталације. Подразумевано ће се променити линкови за админ, логин и регистрацију / админ
, /Пријавите се
, и /регистровати
редом.
Ово може бити одлично ако вам је потребан брзи поправак за блог који садржи више аутора. Посебно ће се сакрити неугодно замршени ВордПресс линк за регистрацију (/вп-логин.пхп?ацтион=регистер
).
Закључак
Надам се да ће вам овај водич пружити неке примјере како бисте размислили о преради ВордПресса. ЦМС је веома популаран и програмери и даље производе нове функције сваки дан. Прилагођавање сопствених УРЛ-ова је огроман део корисничке функционалности. То даје вашем сајту сопствено присуство и брендирање у односу на подразумеване опције.
Ако имате проблема са преписивањем правила, никада не би требало бити тешко поништити штету. Једноставним брисањем кода функције и испуштањем ваших .хтаццесс правила изгледа да се ништа није променило. Обавезно проверите неке друге сличне чланке које можете наћи на тему. Ако имате било каква питања или коментаре, можете их подијелити са нама у области за дискусију.