Poți folosi add_filter() în interiorul altei funcții?
Sunt nou în WordPress și în prezent dezvolt primul meu plugin și întâmpin dificultăți.
Cum pot insera acțiunea add_filter în interiorul funcției mele de submit? Vreau ca acțiunea add_filter
să se proceseze după ce utilizatorul apasă butonul de trimitere.
Am încercat asta dar nu a funcționat.
if(isset($_POST['btn_submit'])) {
function addContent($content = '') {
$content .= "Conținutul meu";
return $content;
}
add_filter('the_content', 'addContent');
}
Orice ajutor ar fi foarte apreciat. Mulțumesc!

Cred că ceea ce căutați DE FAPT să faceți este să folosiți apply_filters()
. add_filter()
înregistrează un nou filtru, în timp ce apply_filters()
aplică filtrele care au fost înregistrate.
Dacă nu este ceea ce încercați să faceți, atunci trebuie să fiți conștienți că add_filter()
trebuie rulat de fiecare dată când doriți să aplicați filtrul. Acest lucru permite eliminarea plugin-urilor fără a fi nevoie să dezînregistrați toate filtrele acestora și, în general, menține o instalare WordPress destul de curată... De asemenea, ajută la securitate. O întrebare mai bună ar putea acoperi un domeniu mai larg, în care să precizați ce încercați să faceți, în loc să ne rugați să depanăm implementarea dumneavoastră.

Vreau să adaug conținut în partea de jos a fiecărui post de pe site-ul meu, iar add_filter a funcționat, dar acțiunea add_filter() se procesează doar atunci când plugin-ul este activat. Dar dacă vreau ca acesta să se proceseze după ce butonul de trimitere este apăsat? Va funcționa apply_filters()? Am citit deja documentația despre apply_filters() și nu am găsit soluția la întrebarea mea.

Vreau doar să spun că am rezolvat deja această problemă. Am separat funcția addContent de funcția submit și am adăugat o linie de cod în interiorul funcției submit care apelează funcția de adăugare a conținutului.
ceva de genul:
`function addContent($content = '') { $content .= "Conținutul meu"; return $content; }
add_filter('the_content', 'addContent');
if(isset($_POST['btn_submit'])) { $content .= addContent(); }`
asta funcționează pentru mine.. mulțumesc mult.

Dacă doriți ca acesta să apară doar după ce un buton a fost apăsat și apoi să dispară la următoarea schimbare de pagină (odată ce datele postate dispar), atunci ceea ce faceți este o metodă adecvată. Dacă doriți să schimbați comportamentul permanent atunci când butonul este apăsat, va trebui să stocați opțiunea în baza de date.

@Shaon, Mulțumesc pentru răspunsul tău. Nu am reușit să fac asta să funcționeze eficient, dar iată o funcție foarte practică pe care am găsit-o: http://core.trac.wordpress.org/ticket/15311#comment:13
