Писање плугин за ВордПресс. Да бисте креирали подешавања странице плугин (парт 4)
Садржај курса за креирање плугин за ВордПресс
- Увод, опште информације (написати плугин за ВордПресс 1. део..)
- Општа теорија (написати плугин за УордПресс 2 део..)
- Припрема за креирање подешавања странице (написати плугин за ВордПресс Део 3..)
- Да бисте креирали подешавања странице плугин (написати плугин за УордПресс 4. део..)
- Функционална компонента (написати плугин за ВордПресс 5. део..)
- Интернационализација и Руссифицатион (написати плугин за ВордПресс 6. део..)
- Додавање на ВордПресс.орг спремиште (написати плугин за ВордПресс Део 7..)
- Изворни код фајл за УордПресс Плугин
Направи страницу подешавања за УордПресс Плугин
Настављамо разговор о томе како написати плугин за ВордПресс.
У последње време смо разговарали пре конфигурише УордПресс плоу, а сада покушавају да пишу на административној страни. За почетак ће дати могућност да креирате страницу, а затим се фокусирају на неким тачкама у детаље. У принципу, основни подаци дат у претходном делу туторијала, овде је сасвим једноставан код са коментарима.
Функција за креирање страницу подешавања за ВордПресс плугин
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | миплугин_оптионс_паге функција () {/ / Функција за креирање и обраду плуг-ин страницу подешавања Глобал $ впдб, $ миплугин_префс_табле; $ Миплугин_оптионс = арраи (/ / Цреате ан низ додатак у подешавањима 'Миплуг_модифи_титле', 'Миплуг_модифи_цонтент', ); Цмд = $ $ _ПОСТ ['цмд']; / / Процес упутство за улаз фореацх ($ $ миплугин_оптионс као миплугин_опт) { $ $ Миплугин_опт = гет_оптион ($ миплугин_опт); } иф ($ цмд == "дел_префс") {/ / Ако притиснете тастер "делете фразу" - чишћење подешавања табеле, плуг-ин $ Скл = "трунцате ТАБЕЛА $ миплугин_префс_табле"; $ Впдб-> куери ($ куери); >? __ ( 'All phrases are removed from the database' , 'example_plugin' ) ; ?> </strong></p></div> /* Сообщаем пользвателю об успешной очистке. <див цласс="упдатед"> <п> <ецхо __ ('Све фразе су уклоњени из базе', 'екампле_плугин');?> </ стронг> </ п> </ див> / * Ми пријавите успешно лечење ползвателиу. * / <Пхп? } $cmd == "add_prefs" && $_POST [ 'prefs_base' ] ) { //Если введены новые фразы в соотв. иф ($ цмд == "адд_префс" && $ _ПОСТ ['префс_басе']) {/ / Ако је нова фраза ушао у АЦЦ. поље - да ли ће их обрадити explode ( " \n " , $_POST [ 'prefs_base' ] ) ; //Ввод разбивается на строки и кладётся в массив, разделитель - перевод строки Линије РСД = екплоде ("\ н", $ _ПОСТ ['префс_басе']); / / улаз је подељен на редове и стави у низа, сепаратор - линије $lines as $line ) { //Перебираем массив со строками фореацх ($ линија као $ линија) {/ / итерацију кроз низ стрингова trim ( $line ) ; //Обрезка каждой строки от переводов $ Лине = трим ($ линија); / / Трим сваку линију трансфера ! $line ) continue ; //Если строка отстутствует - переходим к следующей итерации иф ($ линија!) цонтинуе; / / Ако ред Од датума - идите на следећу итерацију $title , $body ) = explode ( "|" , $line ) ; //Разделение строки на две подстроки листа ($ наслов, $ тело) = екплоде ("|", $ лине); / / Подела стринг у два подниски / / Ставите субстринг у табели плугин. "INSERT INTO $myplugin_prefs_table (title, body) VALUES(' $title ',' $body ')" ; $ Скл = "ИНСЕРТ ИНТО долара миплугин_префс_табле (наслов, тело) ВАЛУЕС ('$ наслов', '$ тело')"; query ( $sql ) ; $ Впдб -> куери ($ куери); } >? __ ( 'Phrases added to the database' , 'example_plugin' ) ; ?> </strong></p></div> /*Сообщаем пользователю об успешной обработке*/ <див цласс="упдатед"> <п> <ецхо __ ('Фразе додаје у базу', 'екампле_плугин');?> </ стронг> </ п> </ див> / * Ми пријавити корисник о успешном руковању * / <Пхп? } $cmd == "myplugin_save_opt" ) { //Обработка нажатия "Сохранить настройки" иф ($ цмд == "миплугин_саве_опт") {/ / Обрада кликом на "Саве Сеттингс" $myplugin_options as $myplugin_opt ) { //Перебор массива с настройками фореацх ($ $ миплугин_оптионс као миплугин_опт) {/ / прелазили конфигурацију низа $_POST [ $myplugin_opt ] ; //Каждому элементу массива присваиваем введённое пользователем занчение $ $ Миплугин_опт = $ _ПОСТ [$ миплугин_опт]; / / доделите сваки елемент низа унет од стране корисника занцхение } $myplugin_options as $myplugin_opt ) { //Обновляем настройки плагина в таблице настроек wordpress фореацх ($ $ миплугин_оптионс као миплугин_опт) {/ / ажурирај подешавања плугин у табели подешавања вордпресс , $$myplugin_opt ) ; упдате_оптион (миплугин_опт $, $ $ миплугин_опт); } >? __ ( 'Settings saved' , 'example_plugin' ) ; ?> </strong></p></div> <див цласс="упдатед"> <п> <ецхо __ ('Подешавања су сачувана "," екампле_плугин');?> </ стронг> </ п> </ див> <Пхп? } >? <див цласс="врап"> <х2> Мој Плугин </ х2> / * Наслов странице Плугин подешавања * / __ ( 'Settings' , 'example_plugin' ) ; ?> </h3> /*Название раздела настроек*/ <х3> <пхп ецхо __ ('Сеттингс', 'екампле_плугин');?> </ х3> / * име одељка подешавања * / / * Старт опције за обраду обрасца. Образац садржи два поља за потврду, омогућите или онемогућите одговарајући плуг-ин функцијом * / $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Формулар метод = "пост" ацтион = "<ецхо $ _СЕРВЕР ['РЕКУЕСТ_УРИ'];?>"> <табле цласс="форм-табле"> <тр> <тх цолспан=2 сцопе="ров"> / * Први чекбокс - ће носити додатак у заглављу запис * / ( $myplug_modify_title ) echo "checked" ; ?> > <?php echo __ ( 'Add random phrase to post title' , 'example_plugin' ) ; ?> <Инпут наме = "миплуг_модифи_титле" типе = "цхецкбок" <иф ($ миплуг_модифи_титле) ецхо "проверен";? >> <Пхп ецхо __ ('Додај насумичну фразу да поставиш наслов', 'екампле_плугин');?> </ Тх> </ ТР> <тр> <тх цолспан=2 сцопе="ров"> / * Други чекбокс - да ли плуг-ин за руковање тело записа * / ( $myplug_modify_content ) echo "checked" ; ?> > <?php echo __ ( 'Add random phrase to post content' , 'example_plugin' ) ; ?> <Инпут наме = "миплуг_модифи_цонтент" типе = "цхецкбок" <иф ($ миплуг_модифи_цонтент) ецхо "проверен";? >> <Пхп ецхо __ ('Додај насумичну фразу да објавите садржај', 'екампле_плугин');?> </ Тх> </ ТР> </ Табле> <инпут типе="хидден" наме="цмд" валуе="миплугин_саве_опт"> / * "функционални" део дугме сачувате подешавања * / <п цласс="субмит"> 'Save Changes' ) ?> " /> /*Вывод кнопки сохранения настроек в браузер. <Инпут типе = "субмит" име = "Пошаљи" валуе = "<пхп _е (" Сачувај измене ")>?" /> / * Излаз дугме да бисте сачували свој прегледач. Стандардна карактеристика Уордпресс * / </ П> </ Образац> / * Крај опција образаца за обраду * / / * Приказ информација о додатку. На пример - који је радио * / __ ( 'Plugin developed' , 'example_plugin' ) ; ?> </h3> <х3> <пхп ецхо __ ('додатак развијен', 'екампле_плугин');?> </ х3> <табле цласс="форм-табле"> <тр> <тх> <ул> __ ( 'By: <a href="http://www.dimio.org/" target="_blank">dimio</a>' , 'example_plugin' ) ; ?> </li> <ли> <пхп ецхо __ ('Пише: <а хреф="хттп://ввв.димио.орг/" таргет="_бланк"> димио </ а>', 'екампле_плугин');?> </ п> </ Ул> </ Тх> </ див> </ табле> / * Блокирајте увођење нових фраза у табели подешавања, плуг-ин. Први је референца за корисника * / __ ( 'Adding phrases' , 'example_plugin' ) ; ?> </h3> <х3> <пхп ецхо __ ('Додавање фразе', 'екампле_плугин');?> </ х3> / * Покрените форму за унос. Образац садржи текст поље за унос ширину од 80 знакова и са висине од 12 линија * / <табле цласс="форм-табле" видтх="300пк"> <тр> <тд> __ ( 'Format phrases: Title|Body' , 'example_plugin' ) ; ?> <br /> <Пхп ецхо __ ('Формат ознаке: Наслов | Боди', 'екампле_плугин');?> <бр /> $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Формулар метод = "пост" ацтион = "<ецхо $ _СЕРВЕР ['РЕКУЕСТ_УРИ'];?>"> <тектареа цолс=80 ровс=12 наме="префс_басе"> </ тектареа> / * Поље за уношење нове фразу * / </ ТД> </ ТР> </ Табле> / * Дугме да бисте сачували фразе. По аналогији са дугме сачували подешавања, али без употребе стандардног клавир, и Уордпресс * / <инпут типе="хидден" наме="цмд" валуе="адд_префс"> <п цласс="субмит"> __ ( 'Add phrases' , 'example_plugin' ) ; ?> " /> <Инпут типе = "субмит" име = "Пошаљи" валуе = "<пхп ецхо __ ('Додаци фразе', 'екампле_плугин');?>?" /> </ П> </ Форм> / * Образац садржи једно дугме - Очистите подешавања плугин табеле * / $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Формулар метод = "пост" ацтион = "<ецхо $ _СЕРВЕР ['РЕКУЕСТ_УРИ'];?>"> <инпут типе="хидден" наме="цмд" валуе="дел_префс"> __ ( 'Remove all phrases from the database' , 'example_plugin' ) ; ?> " /> <Инпут типе = "субмит" име = "Пошаљи" валуе = "<пхп ецхо __ ('Уклони све фразе из базе', 'екампле_плугин');?>" /> </ Форм> </ Див> <Пхп? / / Крај стварање и обрада функције страници подешавања. } >? |
Покушао сам да коментар у коду свих кључних тачака за разумевање, у сваком случају вреди читања о ХТМЛ-а и ЦГИ-програмирању уопште. Иако у принципу - све је интуитиван, а ако буде потребно додати нове елементе на страници подешавања - молим те, барем - реци ми у ком правцу да копају.
У следећем броју ћу испитати функционални део плуг-ин за ВордПресс. Рећи ћу ти како да напишете плуг-ин функције за пријем података из базе и допунама вордпресс-публикацију.
'Add phrases' , 'example_plugin' ) ; ?> – это как раз задел для будущего грамотного перевода (фактически – интернационализации) плагина). Дозволите нам онда Руссифицатион Плугин (требало је да буде опрезан да обратите пажњу на изазове у облику <?php echo __ ( 'Add phrases' , 'example_plugin' ) ; ?> основа за будуће пренос писмености (у ствари - интернационализација) плуг-ин).
И на крају - да ли ће вам показати како да пошаљете свој плугин за верификацију и накнадна објављивања у УордПресс спремишта на ВордПресс.орг.
Не пропустите! ![]()
ПС То је још увек доступна за довнлоад плугин фајл је већ ажуриран.
Више о сличним темама:
Филед ундер: СЕО и блоггинг , Цодинг |
Тагс: Како да , плугин , ВордПресс , Блог , програмирање , промоција се |
11 коментара 

У општем, хладном опис. Али и даље препоручује коришћење било "случаја" - или изградња "ако ... ифелсе друго ..."
Зашто не? Па, чисто да се схвати.
Јасно је да имате процес променљива $ ЦМД је - али знате, бити јасно да ли сви ови третмани ће бити један ентитет, а не појединачним условима. Узгред тамо Ипак, постоји једна ствар: Учинак
Пошто у вашем случају, код барибир (још увек) ће проверити све услове. Али, применом предложеног дизајна кода да достигне жељени резултат, једноставно прекинете даље потрагу за сходно. Ово смањење у ЦПУ времена. Још један плус тачка. Ова читљивост. Када погледате дизајн случај или "ако ... ифелсе друго ..." знате да је ово уобичајено лечење, а онда или или. И можете да постигну опште овог блока на жељену тачку
Жао нам је због нејасног текста донекле реци никад нормално није могао.
Идеја је у принципу јасан. Преписује у форми ако {} {} елсиф ће бити разумно.
Да би се смањило време потребно за ЦПУ итерацију кроз опције за изградњу највероватнији редослед, а не, као сада стоје.
Укључујући.
Па, ви стварно зхзхосх! Толико код, али још увек нема објашњење пристојан!
Док 3 + је максимална
Савет: Можете писати тако да људи могу да разумеју и занимљива, не само ви, драги аутор!
Узалуд. Слажем се да код није најбоља - али коментари су веома јасни.
Па, није тако лоше код, не! Само када се преселио сувише брзо, како кажу, не предигру
. Морали смо некако да делите претходних постова ове информације да ни чајник (кога ја нисам), било је све јасно. Али ја имам питања и питања ...
Наравно, само аутор на почетку слипа да је научио пхп је то због жеље да напише плугин. ИМХО за неискусног програмера - Бр.
Да ли сви од примера за прављење странице. Сам одлучио да проверите. Када активирате плугин поруку о грешци: "Плугин произведено активирањем 292 карактера неочекиван закључак. ... "
Нотепад + +, утф-8 без Пону ене
ВП 3.1.1
3.1.1 нисам. Последња ствар цхецкед - 2.9.2.
У процесу писања ових белешки направио сам плугин који сам ја сада ради на верзији 3.1. ( ). Можете да упоредите са њим, постоји грешка или не.
То је много лакше. ЦР ЛФ после>
Мора бити пажљиво