Nedavno sam imao potrebu pohraniti neke dodatne meta podatke o svakoj kategoriji / prilagođenoj taksonomiji u WordPress. U osnovi, samo sam trebao dodati dodatno polje. Bilo je jednostavno pitanje pronalaženja pravih kuka i izrade jednostavnog meta dodatka kategorije. Ne radimo puno dodavanja novih kategorija, uglavnom su nam samo potrebni pohranjivanje dodatnih informacija o postojećim, pa sam se samo zakačio u obrazac za uređivanje.

Također sam htio da ovo funkcionira bez korištenja bilo kakvih prilagođenih tablica, ali zaista nema dobrog mjesta za pohranjivanje podataka ove vrste u zadane WordPress tablice. Odlučio sam da će tablica wp_options biti najprikladnija jer kada dođe do nje, većina web lokacija ne bi imala više od nekoliko stotina kategorija. Na našem kraju se ne pohranjuje dovoljno informacija da bi se stvorio problem.

ADD_ACTION ( '', 'category_edit_form_fields taxonomy_meta_form_fields'); dodavanje ('edited_category', 'taxonomy_meta_form');

Kuke za prvu akciju u obrascu za uređivanje kategorija / taksonomije. Prikazuje oblik koji smo stvorili i izlazimo iz funkcije zvane taxonomy_meta_form_fields. Druga radnja poziva taxonomy_meta_form kada je obrazac kategorije zapravo uređen.

Puni kod

ADD_ACTION ( '', 'category_edit_form_fields taxonomy_meta_form_fields'); dodavanje ('edited_category', 'taxonomy_meta_form'); funkcija taxonomy_meta_form () {if (! current_user_can ('management_options')) // provjeri da li korisnik ima odgovarajuća odobrenja za povratak; if ($ _ POST ['extra_title']) {$ extra_title = sanitize_text_field ($ _ POST ['extra_title']); // osigurati ništa zlonamjerno $ extra_titles = get_option ('extra_taxonomy_titles'); $ extra_titles = unserialize ($ extra_titles); $ cat_ID = (int) $ _ POST ['tag_ID']; $ extra_titles [$ cat_ID] = $ extra_title; // ažurirajte vrijednost za ID kategorije_aption ('extra_taxonomy_titles', $ extra_titles); // pohranite niz, WP obrađuje serializaciju}} funkciju taxonomy_meta_form_fields ($ tag) {$ cat_ID = $ tag-> term_id; $ extra_titles = get_option ('extra_taxonomy_titles'); $ extra_title = $ extra_titles [$ cat_ID]; ?>

Spajanje u prilagođene taksonomije

ADD_ACTION ( '', 'TAXONOMYNAME_edit_form_fields taxonomy_meta_form_fields'); dodavanje ('edited_TAXONOMYNAME', 'taxonomy_meta_form');

Da biste napravili istu akciju, ali umjesto prilagođenih taksonomija, to je jednostavna stvar promjene akcijske kuke. Jednostavno zamijenite TAXONOMYNAME iznad slusa koji je povezan s vašom prilagođenom taksonomijom.

Prikaz informacija

Da biste preuzeli podatke pohranjene za nas na pročelju, preporučio bih vam da napravite jednostavnu funkciju za pohranu u datoteku function.php svoje teme:

funkcija tj_extra_title ($ id) {$ extra_titles = get_option ('extra_taxonomy_titles'); $ extra_titles = unserialize ($ extra_titles); $ extra_title = $ extra_titles [$ id]; vratiti $ extra_title; }

Zatim bi se sa stranice predloška moglo nazvati na sljedeći način:

$ extra_title = tj_extra_title ($ kategorija-> termin_id); // zamijenite id s bilo kojom varijablom koja je prikladna za vaš kontekst echo $ extra_title;

Pogledajte kod na githubu. Postavite pitanja u nastavku.