WordPress Settings API Wrapper


(Ionuț Staicu) #1

Nu mi-a plăcut niciodată API-ul pentru setări din WordPress. Mi se pare greu, peste mână, țâșpe hooks etc. Prin urmare am facut un mic wrapper.

By default adaugă un entry/instanță în meniul Settings (dar s-ar putea modifica ușor să facă un entry nou în sidebar & submenus). De asemenea adaugă hooks ce înregistrează și încarcă scripts & styles doar pe pagina respectivă de opțiuni (util în cazul unul color picker, sortable, tabs etc).

Ceva păreri? Feedback?

Exemplu de folosire:


(Alex) #2

functiile alea ar trebui sa intoarca stringurile, nu sa le printeze.


(Ionuț Staicu) #3

Ca să… faci ce cu stringurile?


(Alex) #4

in 99% din cazuri sa le printezi. dar nu faci output direct din functie.

faci

echo uber_functia_mea(). 

(Ionuț Staicu) #5

De-ar fi așa simplu :smile:

add_settings_field, funcția care adaugă field-urile propriu zise, nu întoarce nimic. Și ca să fac toată povestea să întoarcă un string aș complica foarte mult - inutil* aș putea spune - toată povestea.

Cea mai bună chestie pe care aș putea s-o fac ar fi să adaug câteva filtre pe input-uri (deși chiar și asta mi se pare un pic overkill)

Folosesc clasa asta (în diferite versiuni, ce-i drept) de ceva timp. Și pot să-ți spun că am avut nevoie să alterez input-urile fix niciodată.


(Alex) #6

aaaaaaaaaaaaaa. good guy wordpres. ne invata cum sa nu facem din 2003


(Ionuț Staicu) #7

Oh, dar asta e cea mai puțin nasoală chestie!

Ia de aici și te crucește! Nu o dată am avut nevoie doar să extind un pic clasa și de fiecare dată am sfârșit prin a dubla complet metoda start_el doar pentru a face mici ajustări…


(Ionut Bajescu) #8

A venit randul meu de data asta :smiley:

E greu de inteles ce se intampla aici: https://github.com/iamntz/wp-settings-wrapper/blob/master/Ntz/Utils/Settings.php#L129-L139
Nu ar fii mai simplu cu varianta short, daca tot e un template?

Nu e incomod sa testezi cu output buffer, cand e mai simplu sa testezi direct rezultatul functiei?

Unde sunt testele?

Echo vs Return - Functions should never echo code, it should always return. This isn’t as bad as the WordPress 1.x days, but it’s still on my list of issues.
http://milesj.me/blog/read/wordpress-is-bad-mmmk


Cum / ce aș putea testa în WordPress?
(Ionuț Staicu) #9

Așa, răzbună-te! :scream_cat:

Să-ți spun drept, și pentru mine e un pic greu să înțeleg ce se întâmplă acolo. Sunt mizeriile WordPress-ului; asta avem, cu asta defilăm. Nu cred că înțeleg varianta short.

Nu sunt teste pentru că încă încerc să învăț disciplina asta.