Plugin api. WordPress Rest API - nədir və nədir? WordPress Rest API ilə başlamaq üçün addımlar

Plugin api. WordPress Rest API - nədir və nədir? WordPress Rest API ilə başlamaq üçün addımlar

2015-ci ilin sonunda ayrıldım. Ancaq böyük və böyük, yalnız inkişaf etmiş inkişaf etdiricilər bu təklifin nə qədər güclü olduğunu tapmaq üçün vaxt tapdılar.

WordPress Rest API paketi, bütün müasir yeniləmələri, mobil tətbiqetmələrə, mobil tətbiqetmələrə və daha çox şəkildə birləşdirilə bilən daxili API təmin edir. Başqa sözlə, inkişaf etdiricilərə məlumatların idarə edilməsindən ön ucu interfeysini bölüşməyə imkan verir, hər hansı bir tətbiqin WordPress ilə qarşılıqlı əlaqədə olmasına imkan verir. Bu vasitənin işini öyrənmək, WordPress veb saytınızı genişləndirmək üçün demək olar ki, sonsuz imkanlar üçün qapıları aça bilər.

Bu yazıda sizə bu qədər yaxşı olduğunu izah edən bir WordPress Rest API layihəsini təqdim edəcəyik, onda istifadə üçün bir neçə fikir təqdim edəcəyik. Buna görə vaxt itirmir və başlamısınız!

WordPress Rest API ilə tanışlıq

WordPress Rest API layihəsi (İngilis dilindən dincəlin. Nümayəndəlik Dövlət Transferi - "Nümayəndələr vasitəsilə Dövlət Transferi"), WordPress-in tam hüquqlu bir tətbiq platforması üçün addımlar atdığını təsdiqləyir. Onun varlığı, mübahisəsiz bir sübutdur, çünki WordPress ləpəsinə standart bir istirahət api əlavə edir.

Layihə əvvəlcə Github-a 2013-cü ildə inkişaf etdiricilərə Ryan McCue və Rachel Baker-də inkişaf etdiricilər üçün yükləndi. Müstəqil bir istirahət API plugini, 2015-ci ilin dekabrında, böyük dəstək aldıqdan və imkanlarını yaxşılaşdırmaq üçün işləmək istəyən 100-ə yaxın iştirakçı cəlb etdikdən sonra WordPress Core-də qurulmuşdur.

WordPress API istirahət etdiyi andan nüvənin bir hissəsinə çevrildi, effektivliyini sübut etdi. Burada, layihələrində istifadə və ilham aydınlığı üçün bir neçə həqiqi nümunə var:

  1. Tədbir Espresso, istirahətçilərə xidmətlərindən istifadə edərək tətbiqetmələrin inkişaf etdirilməsinə imkan verən beynəlxalq infrastrukturuna giriş təmin etmək üçün API-dən istifadə edir.
  2. Simmer, inkişaf etdiricilərin funksionallığını tam hüquqlu bir mobil tətbiqetməyə genişləndirmək və ya mövzuları tənzimləmək üçün API-yə daxil olmağa imkan verir.
  3. Joinin, istirahət API-dən istifadə edərək "quraşdırılmış" öz widgetını göstərir, onu müvafiq məlumatlarla doldurur.

Bu, qalan API-nin yenilikçi məqsədə gəldikdə yalnız aysberqin başındadır. Ancaq qalan API-nin özünün necə işlədiyini müzakirə edək.

API necə WordPress istirahət edir

Qısaca əgər, qalan API, verilənlər bazasına və ya istifadəçi interfeysinə birbaşa daxil olmadan mətn məlumatlarını bir yerdən bir yerdən idarə etməklə işləyir. Bu istirahətə baxmayaraq müasir və müvafiq standart olaraq bir çox API növləri (tətbiqi proqramlaşdırma interfeysi) var.

Qalan API JavaScript obyekti Notation Format (JSON) istifadə edərək Hyper Mətn Transfer Protokolu (HTTP) giriş nöqtələri vasitəsilə ötürülür. Daha asan danışan, bu texnologiyalar JavaScript obyektləri kimi davranan məlumatların çatdırılması üçün unikal veb ünvanlarından istifadə edərək API-yə giriş imkanı verir.

Heç vaxt JavaScript və ya obyektlərin tərifi ilə işləməmisinizsə, JSON-un təməllərini öyrənin. İndi bir az istirahət anlayışı ilə bir az aydınlaşdırıldıqda, WordPress istifadə edərək inkişaf prosesində nə qədər təsir edə biləcəyindən danışaq.

WordPress Rest API-ni inkişaf etdiricilər üçün hansı dəyərlidir

WordPress Rest API, bir veb serverində və ya əməliyyat sisteminizdə hər hansı bir tətbiqetmədə hər hansı bir WordPress quraşdırılmasının universal inteqratorudur. Nəticədə, bu o deməkdir ki, WordPress ilə inşa edilə biləcək şeyin yalnız təsəvvürünün yalnız təsəvvürüdür. İstənilən platforma və ya dildə yazılmış hər hansı bir tətbiq yarada və qalan API vasitəsilə məlumatların işlənməsi üçün WordPress istifadə edə bilərsiniz. Açıq və dost WordPress Community sayəsində böyük imkanlar açılır.

Qalan API JavaScript-ə əsaslanır, hər şeyin artdığı diqqət, bu, öyrənmək üçün hansı proqramlaşdırma dillərinin vacib olduğunu göstərir. Tezliklə server tərəfinin JavaScript yeni bir PHP olduğunu görəcəksiniz. Artıq JavaScript və qalan API-də tam işləyən WordPress.com, Calypso-da artıq görünə bilər.

Standartlaşdırma, Tətbiqlərin qarşılıqlı əlaqəsi metodu (Wordpress Kernel də daxil olmaqla) WordPress məlumatları, WordPress-də inkişaf asan və intuitiv olacaqdır. Üstəlik, üçüncü tərəf platformaları ilə inteqrasiyanı asanlaşdıracaqdır.

Ümid edirəm ki, indi bu texnologiyanın istifadəsini öyrənməyə başlamağın vacib olan daha çox arqumentlər var. İstirahət API-ni öz işinizdə istifadə etmək üçün ilk addımları atmağın vaxtı gəldi!

WordPress Rest API ilə başlamaq üçün 5 addım

Daha əvvəl gördüyümüz kimi, qalan API hər hansı bir tətbiq və ya HTTP mənbələrinin çağırıla biləcəyi hər hansı bir proqramlaşdırma dili ilə istifadə edilə bilər. Qalan API sorğularını yerinə yetirmək üçün əmr satırından istifadə etməyi düşünəcəyik, çünki bu, öyrənmə prosesindən yayındıran səhvlərin minimum ehtimalı olan ən asan metoddur.

Bunu etmək üçün kompüterinizdə bir əmr satırı interfeysi (əmr satırı interfeysi CLI) ilə bir proqram açmalısınız - terminal Macos və ya Linux-da və Əmr xətti pəncərələrdə. CLI, məlumat tələb etmək və emal etmək üçün əlavə skriptlər yazmadan birbaşa qalan API ilə birbaşa əlaqə qurmağa imkan verir. CLI-yə yazdığınız hər hansı bir sorğu PHP, JavaScript və fərqli bir dildə bir skript ola bilər, ancaq metod hər kəs üçün fərqli olacaq. CLI-də əmrlərin birbaşa icrası. İstədiyiniz əmri daxil edin və Enter düyməsini basın.

Həm də bir nümayiş saytı konfiqurasiya etməyi və ya yerli testi test etməyi məsləhət görürük və bu addımları canlı saytda sınamırıq. Nəhayət, saytınızın WordPress versiyası 4.4 və ya daha yüksək olması üçün başqa bir vəziyyət. Hazırsınızsa, başlayaq!

Addım 1: Qalanının əsas anlayışları ilə tanış olun API

Başlamazdan əvvəl, qalan API-nin əsas anlayışları ilə tanış olaq. Görüşməli olduğunuz yalnız beş əsas anlayış və şərtlər var. Gəlin:

  1. Marşrutlar ('marşrutlar') və mənbələri və ya giriş nöqtələri ('son nöqtələr'). Bu, qalan API-ni anlamaqda ən vacib cəhətdir. Routes, müəyyən bir HTTP metodu (məsələn, statik məlumat dəsti və ya fəaliyyət) müəyyən bir marşrutla əlaqəli olduqda resurslarınız arasında hərəkət etməyə kömək edir. Məsələn, / WP-JSON / bizə mövcud marşrutları göstərmək üçün yaradılan bir qaynaq olaraq konfiqurasiya edilmiş bir marşrutdur.
  2. İstək (sorğu). Onlar düzgün mənbələri və məlumat ötürməklə yaradılmışdır.
  3. Cavab (Cavablar). Qısaca, bir şeyin səhv getdiyini bildirmək üçün xahiş etdiyiniz və ya səhvini tələb etdiyiniz məlumatların verilməsi.
  4. Sxemlər (sxemlər). Şablonların cavabları aşağıda, buna görə də hər zaman lazımi məlumatları harada axtaracağınızı dəqiq bilirsiniz.
  5. Nəzarətçi dərsləri (nəzarətçi sinifləri). Öz marşrutlarınızı və mənbələrinizi yaratmağa imkan verirlər. Bu barədə narahat olmaq lazım deyilsə də, gələcəkdə onlar daha faydalı olacaqlar.

Bu beş anlayışı başa düşən kimi, giriş nöqtələrindən başlayaraq, qalan API-ni özündə aradan qaldırmağa başlaya bilərsiniz.

Addım 2: qalan API-nin ən faydalı giriş nöqtələrini öyrənirik

WordPress Rest API, özünüz üçün ən faydalı tapa biləcəyiniz bütün giriş nöqtələri (mənbələri) ilə istinad kitabçası təklif edir. Əvvəlcə bir http zəng api istirahətini necə qurmağı bilməlisiniz. Hər hansı bir WordPress API zənginin əsas hissəsi aşağıdakı kimidir, əvəz edin yodomain.com. Onun:

Http://yourdomain.com/wp-json/

Öz URL-dən istifadə edərək CLI-də qıvrım əmrini işə salmaqla əlaqəni yoxlaya bilərsiniz:

Curl -X seçimləri -i http://yourdomain.com/wp-json/

Buna cavab olaraq mesajı alqışlamalısınız Http.. Bəzi əsas mənbələrdən istifadə edərək bu əmri daha da dəyişdirə bilərsiniz. İndi sadəcə Curl versiyasını istifadə edirik.

WordPress-də Nəşrlərinizin JSON siyahısını əldə etmək üçün aşağıdakılardan istifadə edə bilərsiniz:

Bunun ardınca bütün mövcud WordPress səhifələrini yoxlamaq üçün aşağıdakıları sınayın:

Curl -x Get -i http://yourdomain.com/wp-json/wp/v2/pages

Bu giriş nöqtələrinin (və daha çox!) İlə hər birinin hər birinin verdiyi cavabı nəzərə almaq üçün sınaqdan keçirə bilərsiniz.

Addım 3: Reest API identifikasiyasını öyrənirik

İndi identifikasiyanı araşdırmağın vaxtıdır. Qalan bir neçə hərəkət və məlumatlar API-də açıqdır, digərləri bir administrator kimi səlahiyyətli olmağı tələb edir. Ancaq bu istirahət API-dir və icazəyə daxil olmaq üçün yer yoxdur. Bunun əvəzinə, yayımlanmamış girişlərə və ya nəşrlərdə dəyişiklik etmək kimi sorğu tələb edən sorğuların aparılması prosesində identifikasiya edə bilərsiniz.

WordPress Rest API əsas həqiqət pluginindən başlayaq. Bu, istirahət api-ni tez öyrənməyə kömək edəcək və həqiqi saytlar üçün nəzərdə tutulmayacaq olan inkişaf etdiricilər üçün sadə bir plagindir. Bununla birlikdə quraşdırma prosesi hər hansı digər plugində olduğu kimidir.

Əsas həqiqət quraşdırıldıqdan sonra bayraqla CLI vasitəsilə təsdiqləyə bilərsiniz İstifadəçi.. İstifadəçi identifikasiya metodunu istifadə edərək necə tətbiq olunacağına bir nümunə qıvrılmaq Yayımlanmamış girişləri görmək üçün:

Curl -x alın - İstifadəçi adı: Şifrə -i http://yourdomain.com/wp-json/wp/v2/posts?status\u003ddraft

Authentation, ictimai məlumatların gəzməsi istisna olmaqla, hər hansı digər əməliyyat üçün tələb olunacaq. Əsas identifikasiya ilə tanış olduqdan sonra, inkişafınız üçün qalan API sənədləri tərəfindən tövsiyə olunan digər variantları aşkar edə bilərsiniz.

Addım 4: qalan API istifadə edərək ilk WordPress nəşrinizi seçin

Qalan bir API-nin əsas zənglərini qıvrımdan istifadə edərək, müəyyən bir giriş seçməyə çalışın. Əvvəlcə bütün nəşrləri etdiyimiz kimi gətirəcəklər:

Curl -x Get -i http://yourdomain.com/wp-json/wp/v2/posts

Bir nəşr, səhifə və ya taksonomiya nümayiş etdirmək istəməyinizdən asılı olmayaraq, hər hansı bir istirahət API qaynağı üçün şəxsiyyət vəsiqəsi əlavə etməklə bu tətbiqdən istifadə edə bilərsiniz.

Addım 5: WordPress-də istirahət api vasitəsilə nəşr etmək üçün dəyişiklik edirik

Nəhayət, seçdiyiniz dərc etmək üçün dəyişiklik etməyə çalışaq. Komandaların əvəzinə Seçim və ya Almaq., bu dəfə istifadə edəcəyik Post. Dəyişiklik etmək. Almaq. Məlumatı oxumaq üçün istifadə olunur Post. - onları göndərmək üçün.

Nəşriyyat sorğusunuzu adlandıraq Post. İdentifikasiya üçün məlumatlarla birlikdə. Bayraqdan istifadə edərək yeni dəyişikliklər ediləcək d. Komandanın sonunda. Xüsusi bir JavaScript obyektini təyin edən başlıq dəyişənini təyin edəcəyik Yeni başlığımAşağıdakı kodda göstərildiyi kimi:

Curl -x post --user istifadəçi adı: Şifrə http://yourdomain.com/wp-json/wp/v2/posts/ -d "(" başlıq ":" Yeni başlığım ")"

İstifadəçi adınızı, şifrənizi və nəşr şəxsiyyətini, eləcə də adınızı özünüzlə əvəz etdiyinizə əmin olun. Dəyişiklikləri yoxlamaq üçün yenidən müəyyən bir nəşr seçə bilərsiniz:

Curl -x Get -i http://yourdomain.com/wp-json/wp/v2/posts/

Təbrik edirəm! Sadəcə WordPress Rest API istifadə edərək ilk admin redaktənizi düzəltdiniz. Əlbəttə ki, bu əsas təlimat, qalan hissəsi tərəfindən verilən imkanlardan yalnız çətinliklə narahatdır, lakin başlanğıc üçün çox həlledici addımlardır!

Rəy

WordPress Rest API - WordPress Kernel-in yeni güclü bir versiyası və bir çox inkişaf etdiriciləri öz imkanlarını tətbiq etməyə başlamışdır. Müvafiq olaraq, yeni bir fürsət ilə necə işləməyinizlə oxuyun, proqramçı bacarıqlarınızı artıracaq və WordPress çərçivəsi olaraq istifadə edərək bir tətbiq yarada bilərsiniz.

Xatırladaq, WordPress Rest API ilə qarşılıqlı əlaqəni öyrənmək üçün beş addımdan keçdik:

  1. Qalanların əsas anlayışları ilə tanışlıq API.
  2. Qalan API-nin ən faydalı mənbələri / giriş nöqtələri.
  3. İstirahət API identifikasiya bazalarını öyrənmək.
  4. İstirahət API istifadə edərək WordPress-də nəşriyyat əldə etmək.
  5. Qalmaqal API istifadə edərək WordPress nəşrini dəyişdirmək.

WordPress Rest API ilə bağlı suallarınız nələrdir? Şərhlərdə bizə yazın!

Plugin dinamik yüklənən bir kitabxana (DLL). Proqramı quraşdırdıqdan sonra paylanmaya daxil olan bütün pluginlər kataloqda yerləşdirilmişdir c: \\ Proqram Faylları (X86) \\ Ümumi Fayllar \\ Yumşaq Qızıl \\ İnventarizasiya 14 \\ plaginlər \\ ... Tətbiq başlayanda avtomatik olaraq göstərilən qovluğundan avtomatik olaraq yükləmək üçün * .Blabl uzantısı lazımdır. Plugin də parametrlərdə axtarış yolunu göstərərək digər disk boşluğundan da yüklənə bilər.

Başlatma API plugin

(Delphi VCL uzantıları)

(ABViewer / inventar üçün plugin interfeysi)

(Müəllif hüquqları (c) 2002-2010 SoftGold Proqram Şirkəti)

{************************************************************}

bölmə sgpluginiem;

İnterfeys.

İcra

XMLDOCREF: ixmldocument \u003d nil;

ClientRef: ixmlnode \u003d nil;

P: göstərici \u003d nil;

Pluginshostwnd: hwnd \u003d 0;

Pluginshostwndname: string \u003d "";

Xmlatomstring: String \u003d "";

prosedur başlanğıc;

başlamaq.

// Parametrlər ilə pəncərə sinifinin özünəməxsus bir ad alın

Pluginshostwndname: \u003d format ("tspluginshost:%. 8x:%. 8x",);

// Windows birbaşa tapmaq

Pluginshostwnd: \u003d findwindow (pchar (pluginshostwndname), nil);

Plaginshostwnd olarsa.<> 0 Sonra.

Başlamaq.

// XML sənəd parametrini əldə etmək üçün bir atom simini əldə etmək

XMLATOMSTRING: \u003d FORMAT ("XMLofs% .8x% .8x",

XMldocref: \u003d ixmldocument (getprop (pluginshostwnd, pchar (xmlatomstring)));

Təyin edildikdə (xmldocref) sonra

Başlamaq.

// bir maddə əlavə etmək siyahıda

Clientref: \u003d XMldocref.Documentelement .Xildnodellər

// başlanğıc ünvanı işləmə funksiyasını çağırır

ClientRef.Childvalues \u200b\u200b["Invoke"]: \u003d Intoid (tam (@invoke)); // hexnemanny $ XXXXXXXXX

Sonu;

Sonu;

sonu;

başlatma

Sikilmiş (p);

Başlanğıc;

Plugin nümayiş versiyasını qurmaq və işə salmaq

Plug-in demo versiyası proqramı quraşdırarkən avtomatik olaraq konfiqurasiya edilmiş və inventar başlanğıcından dərhal sonra qoşulur. Paketə komponentin mənbəyi mətnini (Sgplugin.dpk layihəsinin adı) və plug-in Demo versiyasını (plug1.dpr layihəsinin adı) daxildir.

Debug rejimindən bir plug-in işə salınması qaydası:

▪ Açıq C: \\ İstifadəçilər \\ İstifadəçi_NAME \\ Sənədlər \\ İnventarlaşdırma \\ İnventarlaşdırma \\ Səbəbi \\ Delphi \\ Demolar

Layihə seçimlərində quraşdırın:

Axtarış yolu: ".. \\ .. \\ Komponentlər \\ plagitem";

Məsələn, çıxış derectoriyası: "C: \\ Proqram Faylları \\ Ümumi Fayllar \\ Yumşaq Qızıl \\ İnventarlaşdırma 14 \\ Pluginlər";

Ev sahibi tətbiqi, yenidən quraşdırılmış tətbiqMəsələn: "C: \\ Proqram Faylları \\ Yumşaq Qızıl \\ İnventarizasiya 14 \\ İnventarizasiya 14.exe".

▪ İcra olunmağa çalışın.

Kontiqini dizayn vaxtında istifadə etmək üçün açmalı, kəsilməli və quraşdırmalısınız C: \\ İstifadəçilər \\ istifadəçi_NAME \\ Sənədlər \\ İnventarlaşdırma 14 \\ Pluginlər \\ Mənbə \\ Delphi \\ Komponentləri. Komponenti quraşdırdıqdan sonra, Delphi komponenti palitrasında, tsgpluginitem komponenti, dizayn vaxtında istifadə edilə bilən yumşaq qızıl nişanında görünəcək, I.E. Formada yerləşdirin.

Qarmaqlar Wordin'in WordPress-in qalan hissəsini "çəngəl" olmasına icazə vermək üçün WordPress tərəfindən təmin edilir; Yəni müəyyən vaxtlarda plugininizdə funksiyaları çağırın və bununla da plugininizi hərəkətə gətirin. İki növ qarmaq var:

  1. (Kodeks)
  2. (Kodeks)

Bəzən eyni qolu ya bir hərəkət, ya da filtrlə həyata keçirə bilərsiniz. Məsələn, plugininizin bir yazının mətnini dəyişdirməsini istəyirsinizsə, Publish_post-a (bu yazı verilənlər bazasına saxlandığı kimi dəyişdirilmişdir) və ya süzgəc funksiyası (buna görə yazıdır) Brauzer ekranında göründüyü kimi dəyişdirilir).

WP-də bütün hərəkətlərin və filtr qarmaqlarının hərtərəfli siyahısı üçün Adam Brown "S WordPress qarmaq verilənlər bazasına baxın.

Funksiya

Filtr funksiyaları
Fəaliyyət funksiyaları
Aktivləşdirmə / Deaktivasiya / Silinmə funksiyaları

Tədbirlər

Tədbirlər WordPress-də, məsələn, bir yazı yayımı, dəyişən mövzular və ya bir nümayiş etdirən xüsusi hadisələr tərəfindən baş verir. Bir hərəkət, plugininizdə (və ya mövzusunda) müəyyən edilmiş xüsusi bir php funksiyasıdır və hokerad, İ.E. Bu hadisələrin bəzilərinə cavab vermək üçün təyin edin. Hərəkətlər ümumiyyətlə aşağıdakılardan birini və ya bir neçəsini edir:

  • Verilənlər bazası məlumatlarını dəyişdirin.
  • Bir e-poçt mesajı göndərin.
  • Bir istifadəçi brauzerinə göndərilən yaradılan idarə ekranı və ya ön səhifəni dəyişdirin.

Bunun baş verməsi üçün əsas addımlar (aşağıda daha ətraflı təsvir edilmişdir) bunlardır:

  1. Xüsusi bir WordPress hadisəsi baş verdikdə, plugin sənədinizdə icra etməli olan bir PHP funksiyası yaradın.
  2. Funksiyanı istifadə edərək hadisəyə bu funksiyanı bağlayın.
  3. PHP funksiyanızı bir plugin faylına qoyun və onu aktivləşdirin.

Fəaliyyət funksiyası yaradın

Plugininizdə bir hərəkət yaratmağın ilk addımı, plugininizin hərəkət funksiyası ilə PHP funksiyası yaratmaq və plugin faylınıza qoymaqdır (plugin faylınız daxil olmalıdır) wP-Məzmun / Pluginlər Kataloq). Məsələn, dostlarınızın yeni bir yazı yaratdığınız zaman bir e-poçt mesajı almasını istəyirsinizsə, aşağıdakı funksiyanı təyin edə bilərsiniz:

Funksiya e-poçt_friends ($ post_id) ($ dostlar \u003d ") [E-poçt qorunur],[E-poçt qorunur]"; Poçt ($ Dostlar," Sally "s yeniləmə", "Mən sadəcə bloguma bir şey qoydum: http://blog.example.com"); $ Post_id qayıt; )

Əksər hərəkətlər üçün funksiyanız, hərəkətdən asılı olaraq adətən yazı və ya şərh sənədini bir parametr qəbul etməlidir. Bəzi hərəkətlər birdən çox parametr çəkir - hərəkət üçün sənədləri (əgər varsa) və ya daha çox məlumat üçün WordPress Mənbə kodu yoxlayın. Bir parametrdən başqa, həmçinin daxil ola bilərsiniz və digər WordPress funksiyalarını (və ya plugin sənədinizdə funksiyalar) adlandıra bilərsiniz.

Funksiyaya görə hər hansı bir mətn çıxışı (çap ilə e.g.) hərəkətin təşviq edildiyi yerdə hərəkətdə görünəcəkdir.

Qeyd.: Unutmayın ki, digər pluginlər və ya WordPress Core artıq düşündüyünüz funksiya adından istifadə edə bilər. Daha çox məlumat üçün növbəti hissəyə baxın.

Funksiya adı toqquşmalarından qaçınmaq

Kimsə, SAM adlı bir funksiyası olan bir funksiya ilə bir plugin yaratması mümkündür.

Bu problemdir, çünki PHP eyni adlı bir çox funksiyanı vermir. İki plugin eyni adlı bir funksiyanı təmin edirsə və ya bir plugin bir funksiya bir funksiyası təqdim edir, blog işləməyi dayandıra bilər. Bu problemin qarşısını almağın iki yolu var.

Birinci həll, unikal simvol dəsti olan plugininizdəki hər funksiyanı prefiks etməkdir. Adınız John Q. Commat, funksiyalarınızı JQP_output () (...) kimi elan edə bilərsiniz. Eyni baş hərfləri olan birinin plugin ilə eyni şeyi etməsi ehtimalı mümkündür, lakin aşağıdır.

İkincisi - və bəlkə də asandır - bir həll plugin funksiyalarınızı bir sinifdə əlavə etmək və sinif metodlarını statik olaraq zəng etməkdir. Bu, daha mürəkkəb səslənir.

Yuxarıda göstərilən nümunələrdə genişlənən bu sinfə nəzər salın:

Class emailer (statik funksiya göndər ($ post_id) ($ dostlar \u003d ") [E-poçt qorunur],[E-poçt qorunur]"; Poçt ($ Dostlar," Sally "s yeniləmə", "Mən sadəcə bloguma bir şey qoydum: http://blog.example.com"); $ Post_id qayıt; )) əlavə_action ("publish_post", massiv ("emailer", "Göndər")));

Bu çağırdı. e-poçt Bir üsulu var. göndər. Plugin funksiyasını həyata keçirir.

ADD_ACTION () Sinifdən kənarda funksiyası, zəng etmək üçün deyən Wordpress-ə hərəkət əlavə edir göndər. Bir yazı yayımlandıqda metod. İkinci parametrdə istifadə olunan serialda "Göndər" adlı "emailer" sinifinin statik metodunu izah edir.

Funksiya. göndər. Sinif bəyannaməsi ilə qlobal ad boşluğundan qorunur. Göndərmək () birbaşa və buna görə adlı hər hansı digər funksiyanı göndərmək mümkün deyil göndər. Bu ilə toqquşmayacaq. Göndərməyə zəng edərdinsə, bu kimi bir həcm qətnamə operatorundan istifadə etməlisiniz: emailer :: göndər ()

Yuxarıdakı nümunə statik üsullar üçündür. Bir sinif nümunəsi varsa, o zaman "işləyən bir nümunə metoduna zəng etmək üçün nümunəni dəyişən kimi qəbul etməlisiniz. Bunu nəzərə almaq üçün dəyişdirilmiş nümunəni nəzərə al:

Sinif e-poçtu (funksiya göndər ($ post_id) ($ dostlar \u003d ") [E-poçt qorunur],[E-poçt qorunur]"; Poçt ($ Dostlar," Sally "s yeniləmə", "Mən sadəcə bloguma bir şey qoydum: http://blog.example.com"); $ Post_id qayıt; )) $ Myemailclass \u003d yeni e-poçt (); Add_action ("publish_post", massiv ($ myemailclass, "Göndər")));

Dərslər mürəkkəb bir mövzudur. Dərslərdə PHP sənədlərində onlar haqqında daha çox oxuyun.

WordPress-ə çəngəl.

Funksiyanız müəyyən edildikdən sonra növbəti addım "çəngəl" və ya WordPress-i qeydiyyatdan keçirin. Bunu etmək üçün, plugin sənədinizin qlobal icra məkanına zəng edin:

Add_action ("Hook_name", "Your_function_name" ,,);

HOOK_NAME WordPress tərəfindən təqdim olunan bir hərəkət çəngəlinin adı, bu, funksiyanın hansı hadisənin əlaqələndirilməli olduğunu izah edir. Sizin_funksiyası, Hook_name tərəfindən göstərilən tədbirdən sonra icra olunmağınız istədiyiniz funksiyanın adı. Bu, standart bir php funksiyası, WordPress Core-də mövcud olan bir funksiya və ya plugin faylında (məsələn, "Email_friends" kimi) yuxarıda göstərilən bir funksiyanı (məsələn, "email_friends" ola bilər) ola bilər. Prioritet, müəyyən bir hərəkətlə əlaqəli funksiyaların yerinə yetirilməsinə (default: 10) göstərilən qaydada istifadə olunan isteğe bağlı bir arqument. Aşağı nömrələr əvvəlki icra ilə uyğun gəlir və eyni prioritetlə funksiyalar hərəkətə əlavə edilmiş qaydada yerinə yetirilir. Hesablanıb_args, funksiyanızın neçə dəlilini qəbul edə biləcəyini (standart 1) qəbul edə biləcəyini müəyyənləşdirən bir arqument, bəzi qarmaqlar funksiyanıza birdən çox arqumenti keçə bilər. Bu parametr 1,5.1 buraxılışında yenidir.

Yuxarıdakı nümunədə, bu xətti plugin sənədində qoyardıq:

Add_action ("publish_post", "email_friends");

Quraşdırmaq və aktivləşdirmək

Faylınızı quraşdırmaq və plugin aktivləşdirmək üçün süzgəcinizi işə salmaq üçün son addım. Yazdığınız PHP funksiyası və zəng PHP sənədinə keçməlidir və PHP faylı quraşdırılmalıdır wP-Məzmun / Pluginlər Qovluq. Quraşdırıldıqdan sonra WordPress-in admin bölməsinə baş çəkməli və plugininizi aktivləşdirməlisiniz; Daha çox məlumat üçün baxın.

Filtrlər üçün cari qarmaqlar

Aktivləşdirmə / Deaktivasiya / Silinmək

Plugininiz yalnız aktivləşdirmə və ya deaktivasiya vaxtında başa çatdırmaq üçün tapşırıqlar varsa, istifadə və fəaliyyət arayışı - WordPress-in fəaliyyət qarmaqlarının siyahısı

Xarici qaynaqlar.

  • Adam Brown "S WordPress Database, bütün WordPress-in məlumat bazası, bunları istifadə edən mənbə kod ləkələrinin hansı versiyasının versiyasını göstərir. Bu ən tamdır.
  • WordPress-də Otto:

ERP inteqrasiyası üçün əladır

Bu plugin əla, ERP sistemləri ilə Nopcommerce sinxronizasiya etmək üçün çox faydalıdır. Ancaq tam deyil və bir az köhnəlmiş deyil. Yarımçıq kodu əlavə etmək üçün Github-dan mənbə kodu və nümunə tətbiqini yükləyin.

Şəxsi təcrübəm

İllərdir fiziki mağazada işləyən bir müştəri üçün İS etdi və bu yaxınlarda e-ticarət saytını yaratmağımı istədi.
Artıq 300-dən çox masa, o cümlədən məhsul və müştəri də daxil olmaqla ticarət məlumatlarını qorumaq üçün yüksək xüsusi bir ERP sistemi var.
Beləliklə, Nopcommerce'nin gözəl bir idarə paneli olmasına baxmayaraq, onu iki sistemin saxlanmasına baxdı və bu, özünün ERP-dən Nopcomerce-yə qədər bir avtomatik bir şəkildə sinxronizasiya etmək üçün nə qədər vaxt ayıracağını soruşdu, çünki məhsul qiymətlərini və miqdarlarını yeniləyir.
Düzünü deyim ki, vicdanla bilmədim, bir gün təhlil etmək üçün bir gün çəkirəm, hansı pluginlərin mövcud olub və günün sonuna qədər ona daha dəqiq bir qiymətləndirmə verdiyini gör.
Xoşbəxtlikdən mən bu heyrətamiz plugin tapdım, mənbə kodu və akkumpani nümunə yükləyin. API dəyişdirmək asandır, çünki hər hansı bir itkin funksionallıq təmin etmək üçün verilənlər bazası quruluşunu təqlid edir. Nümunə çox əsas olduğu üçün sərtdir, ancaq API funksiyalarına və çəkilmiş identifikasiya mexanizmi necə işlədiyini göstərir.
Şəxsən mənim etdiyim budur:
1) IIS ilə intranetdəki bir serverdə nümunə MVC veb tətbiqi kopyaladı və http: // nopync kimi daxil ola bilməsi üçün bir CNAME rekordunu yaratdı
2) "mənbəyi" etmək və eyni CSS sənədlərinin əksəriyyətinə istinad edərək Nopcommerce admin paneli kimi eyni "görünüş və hiss" bəxş etdi
3) Giriş forması və sessiya dəyişənləri, Web.config-də sərt kodlu etimadnaməsini və avtomatik olaraq yükləndi
4) Bütün Nopcommerce məhsulları üçün SKU və İstehsalçı daxil etmək üçün SQL skriptindən istifadə etdilər. Bu iki birləşdirilmiş sahə iki sistem arasındakı məhsulların bənzərsiz uyğunlaşdırılması üçün açarım idi
5) API, bütün məhsulları seçmək üçün "siyahı" funksiyasını təmin edir, lakin yeniləmələri bir-bir həyata keçirir.
Bütün məhsulları oxuya bilərdim və sonra hər dəfə ERP sisteminə daxil olan bir döngə ilə, hər dəfə ERP sisteminə daxil ola bilərdim, fərqlər olsaydı, qiyməti və miqdarını yoxlayır və nopcommerce yeniləyirdi.
Bununla birlikdə, bütün Nopcommerce məlumatlarını yerli verilənlər bazası məhsulları mektörünə, Defolt-a bərabər olan DisplessquireUntating bayrağı olan yerli verilənlər bazası məhsulları cədvəlinə oxumaq üçün daha çox işçi hesab etdim.
Bunun faydası ERP sisteminin yalnız bir dəfə əldə edilməsi idi. Məhsullar cədvəlində bir sorğu ilə bir sorğu ilə ERP verilənlər bazası cədvəlləri, məhsul qiymətləri, kvantları və bayraqları yeniləyə və sonradan bu bayraq üçün bir dəfə yeniləmə API-ni həqiqətə uyğunlaşdıra bildim.
6) Mən bot əl ilə və avtomatik sinxronizasiya üçün aldım. HTTP: // nopsync-də bir link daxil etməklə idarəetmə panel menyusunda və avtomatik olaraq veb nümunəni dəfələrlə zəng etmək üçün avtomatik olaraq daxil etməklə.

Müştəri məndən soruşanda, günün sonunda, ERP sincronizasiyasını qurmaq üçün neçə gün çəkəcək, deyirəm Sevenspikes API-nin onlayn və sinxronizasiya olunduğunu söylədim. Təşəkkürlər Sevenspikes !!

Pluginlər veb-çanta ekosisteminin əsas parçasıdır və camaatı veb çantasının tərtib prosesinə daxil etmək üçün güclü bir yol ilə təmin edir. Bir plugin, hər bir tərtibat boyunca atəş açan əsas hadisələrə çevrilir. Yolun hər addımı, plugin Kompilyatora və tətbiq olunduqda, mövcud tərtibata tam giriş əldə edəcəkdir.

Yazı plaginləri yazmaq üçün yüksək səviyyəli bir giriş üçün, bir plugin yazmaqdan başlayın.

WebPack-in plugin interfeysinin onurğasını təmin edən lentablı yardım proqramı ilə başlamaqla başlayaq.

Ləngimli

Bu kiçik kitabxana WebPack-də əsas bir yardım proqramıdır, lakin oxşar bir plugin interfeysi təmin etmək üçün başqa yerdə istifadə edilə bilər. Webpack-dəki bir çox obyekt lentable sinfi uzadır. Sinif, tapanlar, tapanlar və tapmalar və tappromise metodlarını ifşa edir və bir yığma boyunca atəş açacaq xüsusi qurma addımları atmaq üçün istifadə edə bilər.

ProgressPlugin'in hesabatProgress funksiyasına fərqli arqumentlərdən keçərək çap edilmiş çıxışı düzəltmək mümkündür.

Tərəqqi hesabat vermək üçün, bir plagin kontekstdən istifadə edərək bir çəngələ vurmalıdır: Həqiqi seçim:

Tərtibçi. Qarmaqlar. Yamac. TapasSync (myplugin ", kontekst: əsl), (context: ) \u003d\u003e ((ReportProgress) reportprogress (0.95, "işləmə işi"););), 1000);));

HesabatProgram funksiyası bu arqumentlərlə çağırıla bilər:

HesabatProgress (faiz, ... args);
  • faiz: Bu mübahisə istifadə olunmamışdır; Bunun əvəzinə, ProgressPlugin cari çəngəl əsasında bir faiz hesablayacaqdır.
  • ... Args: İstənilən sayda iplik, istifadəçiyə bildiriləcək procateflugin işçilərinə keçəcək.

Qeyd edək ki, kompilyator və kompulyasiya qarmaqlarının yalnız bir alt hissəsi hesabatProgram funksiyasını dəstəkləyir. Tam siyahı üçün ProgressPlugin-ə baxın.

Giriş.

Giriş API, WebPack 4.37-nin buraxılmasından bəri mövcuddur. STATS konfiqurasiyasında və / və ya infrastruce giriş effektiv olduqda giriş aktiv olduqda, pluginlər müvafiq qeydçi formatında (statistika, infrastruktur) çap ediləcək mesajları daxil edə bilər.

  • Pluginlər, giriş üçün tərtibat.getlogger ("pluginame") istifadə etməyi üstün tutmalıdır. Bu cür giriş müvafiq olaraq saxlanılır. Bu istifadəçi tərəfindən süzülə və ixrac edilə bilər.
  • Pluginlər, giriş üçün kompilyator.getinfrastrukturelogger ("pluginame") istifadə edə bilər. İnfrastruktur girişindən istifadə statistikalarda saxlanılmır və theraeormulur. Adətən konsol / tablosuna / GUI-ya birbaşa daxil oldu. Bu istifadəçi tərəfindən süzülə bilər.
  • Pluginlər giriş dəstəyi tərtib etmək üçün xüsusi geri dönmə məntiqindən istifadə edə bilər. Tərtibat

Növbəti stes.

Mövcud tərtibçi qarmaqlar və mövcud olan parametrlər üçün kompilyator qarmaqlar bölməsinə baxın.

 

 

Bu maraqlıdır: