Dom Igre Unošenje promjena u WooCommerce fajlove šablona. Važno! Pravljenje promjena u WooCommerce šablonskim datotekama Balaganny add review php

Unošenje promjena u WooCommerce fajlove šablona. Važno! Pravljenje promjena u WooCommerce šablonskim datotekama Balaganny add review php

Predlošci WooCommerce fajlovi sadrže oznake i strukturu predloška sučelja (i HTML poruke email) vaše prodavnice. Ako otvorite ove datoteke, primijetit ćete da svi sadrže mnogo kukica koje će vam omogućiti da dodajete/premeštate sadržaj bez potrebe da sami uređujete datoteke šablona. Ovaj pristup štiti od bilo kakvih problema s ažuriranjima, budući da datoteke šablona mogu ostati potpuno netaknute.

Osim toga, možete uređivati ​​ove datoteke na bezbedan način korištenjem zamjene. Jednostavno ih kopirajte u svoj predložak u folderu koji se zove /woocommerce, zadržavajući istu hijerarhijsku strukturu poddatoteka i mapa.

Kopirane datoteke šablona će nadjačati zadane WooCommerce datoteke šablona. Nemojte uređivati ​​datoteke šablona u jezgri samog dodatka, jer će oni biti prepisani tokom procesa ažuriranja i sve promjene u njima će biti izgubljene, budući da će ažurirane datoteke šablona prepisati stare datoteke šablona. Ako želite promijeniti neki od predložaka , tada nema potrebe da kopirate sve datoteke šablona koje se nalaze u folderu šablona, ​​ali potrebno je samo da kopirate datoteku šablona u koju želite da izvršite promene

. Da biste to učinili, kreirajte woocommerce folder iz direktorija u vašoj temi i prenesite predložak u njega, promatrajući ugniježđenje mapa. Primjer: Da biste izvršili promjene u predlošku korpe, kopirajte woocommerce/templates/cart/cart.php V. Nakon toga možete napraviti bilo kakve promjene u datoteci predloška cart.php , koji se nalazi u fascikli sa vašom temom (tj. u datoteci cart.php, nalazi se na adresi vaša_tema/woocommerce/cart/cart.php


), a promjene koje napravite ostat će čak i nakon ažuriranja WooCommercea.

U direktoriju /woocommerce/templates/ možete pronaći sljedeće datoteke šablona

Spojler: Lista fajlova

(ova lista predložaka je relevantna za WooCommerce 2.0+):

· archive-product.php


kolica/

· cart-empty.php

cross-sells.php

mini-cart.php

shipping-calculator.php

shipping-methods.php


· totals.php


naplata/

cart-errors.php

form-billing.php

form-checkout.php

form-coupon.php

form-login.php

form-pay.php

form-shipping.php

review-order.php

· content-product_cat.php

content-product.php

· content-single-product.php​


· emailovi/


· admin-new-order.php

· customer-completed-order.php

· kupac-faktura.php

· customer-new_account.php

customer-note.php

· customer-processing-order.php

· customer-reset-password.php

email-addresses.php

email-footer.php

email-header.php

· email-order-items.php​


· petlja/


add-to-cart.php

loop-end.php

loop-start.php

no-products-found.php

pagination.php

result-count.php

· sale-flash.php


· moj račun/


form-change-password.php

form-edit-address.php

form-coupon.php

form-lost-password.php

my-account.php

moja-adresa.php

my-downloads.php

my-orders.php


· naručiti/


form-tracking.php

order-details.php

· tracking.php​


· trgovina/


breadcrumb.php

form-coupon.php

messages.php

wrapper-end.php

WordPress znači prilagođavanje/prilagođavanje. Napravljen je na način da se apsolutno svaki dio može prilagoditi. U ovom tutorijalu ćemo pogledati prilagođene vrste postova, jedna od najznačajnijih i najznačajnijih karakteristika WordPress-a, uz pomoć koje je WordPress uspeo da dosegne nove visine.

Šta su prilagođene vrste postova?

Recimo da želite da vaš blog ima poseban odjeljak za recenzije filmova. Koristeći prilagođene tipove objava možete kreirati novi tip, na primjer, Objave i stranice, koji će sadržavati drugu vrstu podataka. Imat će svoj administratorski meni, posebne stranice za uređivanje, vlastite taksonomije i mnoge druge alate koji su potrebni za potpun rad s publikacijama.

Prilagođene vrste objava su dodatni skup administratorskih postavki koje postoje pored postavki za zadane vrste objava kao što su evidencije, stranice, priložene datoteke, itd. Prilagođeni tipovi objava mogu pohraniti bilo koju vrstu podataka. Imaju poseban uređivač, program za učitavanje medija i koriste već postojeću strukturu WordPress tabele, što olakšava upravljanje podacima. Glavna prednost prilagođenih tipova postova koje kreira WordPress pomoć API leži u njihovoj kompatibilnosti sa postojećim temama i šablonima. Također, zahvaljujući korištenju stalnih veza, prilagođeni tipovi postova dobro komuniciraju sa pretraživačima.

Zašto koristiti prilagođene vrste objava?

Prilagođene vrste postova vam pomažu u pohranjivanju različite vrste evidencije na različitim mjestima. Ovo pomaže odvojiti redovne objave od drugih. To je to.

Kreiranje dodatka za prilagođeni tip objave

Napravit ćemo dodatak za prilagođeni tip objave koji će prikazati najbolje recenzije filmova. Počnimo.

Korak 1. Kreirajte folder za WordPress dodatak

Otvorite fasciklu sa WordPress dodaci i kreiraj novi folder Filmske kritike.

Korak 2: Kreirajte PHP datoteku

U kreiranom folderu kreirajte PHP fajl Movie-Reviews.php

Korak 3: Dodajte zaglavlje

Otvorite kreiranu datoteku i zalijepite kod za zaglavlje na vrh.

Prije završne oznake PHP komande, unesite sljedeći red koda create_movie_review . Kada se inicijalizira, pokrenut će odgovarajuću prilagođenu funkciju svaki put kada se stranica generira.

Add_action("init", "create_movie_review");

Korak 5: Izvršite funkciju

Kod za izvršavanje funkcije create_movie_review.

Funkcija create_movie_review() ( register_post_type("movie_reviews", array("labels" => array("name" => "Recenzije filmova", "singular_name" => "Recenzija filma", "add_new" => "Dodaj novi", "add_new_item" => "Dodaj novu recenziju filma", "edit" => "Uredi", "edit_item" => "Uredi recenziju filma", "new_item" => "Nova recenzija filma", "view" => "Prikaži ", "view_item" => "Pogledaj recenziju filma", "search_items" => "Pretraži recenzije filmova", "not_found" => "Nisu pronađene recenzije filmova", "not_found_in_trash" => "Nisu pronađene recenzije filmova u smeću", "parent" => "Recenzija roditeljskog filma"), "public" => true, "menu_position" => 15, "supports" => array("title", "editor", "comments", "thumbnail", " custom-fields"), "taxonomies" => array(""), "menu_icon" => plugins_url("images/image.png", __FILE__), "has_archive" => true)); )

Funkcija register_post_type obavit će većinu posla u našem slučaju. Čim bude pozvan, pripremit će WordPress konfiguraciju neophodnu za novu objavu korisnika, uključujući dodatne dijelove za administratora. Dvije vrste argumenata se prosljeđuju funkciji: jedinstveno ime prilagođenog tipa objave i niz sa njegovim svojstvima. Ovo je još jedan niz s različitim oznakama koje označavaju koji će tekstualni nizovi biti prikazani u različitim dijelovima prilagođenog tipa objave, na primjer: "name" prikazuje naziv prilagođenog tipa objave na kontrolnoj tabli, "edit" i "view" dugmad za prikaz Uredi I Pogled. Mislim da svi ostali argumenti govore sami za sebe.

Dakle, u sljedećim argumentima:

  • "public" => true postavlja vidljivost prilagođenog tipa objave i na admin kontrolnoj tabli i na front-endu.
  • "menu_position" => 15 određuje gdje će se u meniju nalaziti prilagođeni tip objave.
  • "supports" => array("title", "editor", "comments", "thumbnail", "custom-fields") specificira one prilagođene atribute tipa objave koji će biti prikazani.
  • "taxonomies" => array("") kreira prilagođene taksonomije. U ovom slučaju oni nisu definisani.
  • "menu_icon" => plugins_url("images/image.png", __FILE__) prikazuje ikonu u administratorskom meniju.
  • "has_archive" => true dozvoljava arhiviranje prilagođenih tipova objava.

Možete saznati više o drugim argumentima koji se koriste u prilagođenim tipovima objava na stranici WordPress Codex register_post_type.

Korak 6: Ikona za prilagođenu vrstu objave

Sačuvajte ikonu 16x16 piksela u fasciklu dodataka. Ovo je neophodno kako bi prilagođeni tip objave imao ikonu na kontrolnoj tabli.

Korak 7: Aktivirajte dodatak

Aktivirajte dodatak i voila, imate prilagođeni tip objave sa mogućnošću uređivanja teksta, postavki za objave, slike, komentare i prilagođeni uređivač polja.

Korak 8: Dodajte novi unos

Odaberite Dodaj novo da otvorite panel za uređivanje prilagođenog tipa objave. Dodajte naslov filma, tekst pregleda i odaberite sličicu slike.

Korak 9: Objavite

Objavite objavu i kliknite Pogledajte recenziju filma da vidite kreiranu recenziju filma.

Kreiranje dodatnih polja za prilagođene vrste postova

Mehanizam dodatnih polja (metaboksova) koristi sistem dodatnih polja ugrađen u WordPress. Ovo vam pomaže da dodate polja koja su specifična za prilagođene vrste postova bez korištenja zadanih prilagođenih polja u uređivaču.

Korak 1: Registrirajte prilagođenu funkciju

Otvorite fajl Movie-Reviews.php i dodajte sljedeći kod prije završne oznake. Ovaj kod registruje funkciju koja će biti pozvana kada posetite WordPress admin panel.

Add_action("admin_init", "my_admin");

Korak 2: Izvršite prilagođenu funkciju

Dodajte izvršavanje funkcije my_admin koja registruje dodatna polja i povezuje ih sa prilagođenim tipom objave movie_reviews.

Funkcija my_admin() ( add_meta_box("movie_review_meta_box", "Detalji recenzije filma", "display_movie_review_meta_box", "movie_reviews", "normal", "high"); )

U ovom slučaju, funkcija add_meta_box se koristi za dodavanje dodatnih polja prilagođenom tipu objave. O atributima:

  • movie_review_meta_box potreban atribut za HTML id
  • Pregled filma Detaljan tekst koji će biti vidljiv u zaglavlju dodatnog polja
  • display_movie_review_meta_box funkcija povratnog poziva koja prikazuje sadržaj dodatnih polja
  • movie_review je naziv prilagođenog tipa objave gdje će se prikazati dodatna polja
  • normal definira gdje će na stranici biti prikazan blok za uređivanje
  • high određuje prioritet prikazanih polja

Korak 3: Izvršite funkciju display_movie_review_meta_box

ID, "movie_director", istina));
$movie_rating = intval(get_post_meta($movie_review->ID, "movie_rating", istina));
Filmski režiser

zvijezde Ovaj kod prikazuje sadržaj dodatnih polja. Ovo koristi varijablu objekta koja sadrži informacije o svakoj recenziji filma prikazanoj na panelu za uređivanje. Koristeći ovaj objekat smo dobili

Post ID

i koristio ga za upite u bazi podataka kako bi dobio ime i ocjenu direktora, koji bi zauzvrat bili prikazani u poljima na ekranu. Prilikom dodavanja novog posta, get_post_meta funkcija će vratiti prazan string i dodatna polja će na kraju biti prazna.

Korak 4: Registrirajte funkciju snimanja snimanja

add_action("save_post", "add_movie_review_fields", 10, 2);

Ova funkcija se poziva kada se zapis pohrani u bazu podataka.

Korak 5: Izvršite funkciju add_movie_review_fields

function add_movie_review_fields($movie_review_id, $movie_review) ( // Provjeri vrstu objave za recenzije filma if ($movie_review->post_type == "movie_reviews") ( // Pohrani podatke u meta tabelu posta ako su prisutni u podacima objave if (isset($ _POST["movie_review_director_name"]) && $_POST["movie_review_director_name"] != "") ( update_post_meta($movie_review_id, "movie_director", $_POST["movie_review_director_name"]); _rating if ($movie_review) ]) && $_POST["movie_review_rating"] != "") ( update_post_meta($movie_review_id, "movie_rating", $_POST["movie_review_rating"]); ) ) )

Prilikom kreiranja prilagođenog tipa objave naveli smo funkciju create_movie_review. Uklonite element custom-fields iz niza podrške jer nam više neće trebati. Sada ako sačuvate datoteku i otvorite panel za uređivanje Movie Reviews, vidjet ćete dva polja u dodatnim poljima: Autor filma I Movie Rating. Na isti način možete dodati i druge elemente.

Kreirajte predložak za prilagođeni tip objave

Bilo bi ispravno da svaka vrsta korisničkog zapisa koristi svoje vlastite šablone za prikaz podataka. U našem slučaju, kreirat ćemo predložak koji prikazuje sve recenzije filmova koje su dodane korištenjem prilagođenog tipa objave Movie Review.

Korak 1: Registrirajte funkciju pokretanja predloška

Otvorite fajl Movie-Reviews.php i prije završne oznake dodajte sljedeći kod. Ovaj kod registruje funkciju koja će biti pozvana kada posetite WordPress admin panel.

Add_filter("template_include", "include_template_function", 1);

Korak 2: Izvršite funkciju

function include_template_function($template_path) ( if (get_post_type() == "movie_reviews") ( if (is_single()) ( // prvo provjerava postoji li datoteka u temi, // inače posluži datoteku iz dodatka if ($ theme_file = locate_template(array ("single-movie_reviews.php"))) ( $template_path = $theme_file; ) else ( $template_path = plugin_dir_path(__FILE__) . "/single-movie_reviews.php"; ) late) th return; ) temp_pa) th return; )

Ovo provjerava da li trenutni folder teme ima šablon poput single-(post-type-name).php. Ako ga nema, tada se provjerava prisutnost šablona u folderu dodataka, gdje ćemo postaviti naš predložak kao dio dodatka. Obrađivač događaja template_include (hook) se koristi za promjenu normalnog izvršavanja programa i prisiljavanje posebnog šablona da se pokrene.

Korak 3: Kreirajte datoteku predloška jedne stranice

Nakon što spremite prethodno otvorenu datoteku s dodatkom, kreirajte drugu datoteku pod nazivom single-movie_reviews.php i zalijepite sljedeći kod u njega.

"movie_reviews");$loop = novi WP_Query($mypost);
>
?>
have_posts()) : $loop->the_post();?>
Naslov: Direktor: "; } } ?>

Ocjena:

"; ) else ( echo ": Morate kreirati novu stranicu s kontrolne ploče koristeći kreirani predložak.

Korak 4: Slike

Sačuvajte dvije slike ikone zvijezde veličine 32x32 piksela u svoju mapu dodataka. Imenujte ih u skladu s tim icon.png I siva.png. To je sve, sada se recenzije filmova prikazuju na posebnoj stranici i sortiraju po datumu.

Uključićemo i funkciju uređivača postova Prilagođena polja (prilagođena ili prilagođena polja) za svaki tip i prikažite polja u novim predlošcima.

U WordPress-u, prilagođeni tipovi objava vam daju potpunu kontrolu nad načinom prikazivanja sadržaja svojim korisnicima. Ako kreirate postove na svom blogu, možete kreirati prilagođene stilove samo za te postove. Ako pišete recenzije o muzici ili filmovima, možete dodati dodatne oblasti za unos u postove koje želite i oni se neće pojavljivati ​​u drugim objavama na blogu.

Ali prije nego što nastavimo, hajde da shvatimo šta su postovi korisnika.

Koje su WordPress prilagođene vrste postova?

Ukratko, WordPress prilagođeni tipovi postova vam omogućavaju da sortirate postove na osnovu njihovog sadržaja. U WordPress-u, zadane vrste objava su Objava, Stranica, Mediji itd.

Obično pišete sve svoje objave u odeljku Postovi na konzoli administratora, a zatim im dodijelite kategoriju. Svi unosi različitih tipova nalaze se na jednoj listi, što otežava njihovo razlikovanje po tipu sadržaja.

Prilagođeni tipovi postova sa sopstvenim vezama u administratorskoj konzoli vode vas do liste postova tog tipa. Postovima kreiranim na ovaj način se mogu dodijeliti kategorije kao obični post, tako da imate apsolutnu slobodu sortiranja i predstavljanja postova na bilo koji način.

U gornjem primjeru, ako korisnik ode u odjeljak baze podataka o filmovima na vašoj web-lokaciji, postovi s recenzijama neće biti uključeni. Ako, na primjer, napravite kategorije 'Akcija' i 'Romantika', vaši korisnici će moći otići u kategoriju Akcionih filmova i vidjeti sve recenzije i filmove u kategoriji.

Kada kreirate novu vrstu objave, imate mnoga podešavanja, na primer gde će se link nalaziti u administratorskom meniju, da li će ovaj tip biti uključen u rezultate pretrage, da li će podržavati prikazivanje fragmenta teksta, da li su komentari dozvoljeni , i tako dalje.

Možete promijeniti različite tekstove naslova (definirane pomoću niza $labels), kao što je preimenovanje Dodaj novu objavu V Dodaj novi film. Na primjer, možete preimenovati tekst Featured Image V Dodaj poster.

Također možete omogućiti funkciju prilagođenih polja u svom uređivaču postova, koja je skrivena prema zadanim postavkama i mora biti omogućena putem veze Opcije ekrana na vrhu uređivača.

Nastavljajući primjer s filmovima i recenzijama filmova, filmske publikacije mogu dodati prilagođena/prilagođena polja za parametre kao što su godina izdanja, režiser, ocjene i mnoge druge sa kratkim pregledom filma kao sadržajem objave.

Obično je svako polje koje kreirate dostupno u bilo kojoj vrsti objave, tako da dodatak zahtijeva ograničenja za svako polje gdje mu se može pristupiti.

Kreiranje novih vrsta postova

Kada napravite značajne promjene u WordPressu, jedna od dostupnih opcija implementacije je kreiranje dodatka. Također možete kreirati nove prilagođene vrste postova u datoteci functions.php. Za ovaj vodič mi Kreirajmo dodatak i nastavimo koristiti primjer s bazom podataka filmova/recenzija.

Da biste kreirali prilagođeni tip objave, morate napisati nekoliko funkcija koje pozivaju WordPress funkciju register_post_type() sa dva parametra. Vaša funkcija trebalo bi biti vezan za akcijsku udicu init, inače prilagođeni tip objave neće biti ispravno registriran.

// Prilagođena funkcija MORA biti povezana na zakačicu init akcije add_action("init", "lc_register_movie_post_type"); // Prilagođena funkcija koja poziva funkciju register_post_type lc_register_movie_post_type() ( // Postavlja različite dijelove teksta, $labels se koristi unutar $args niza $labels = array("name" => _x("Movies", "općeni tip objave) name"), "singular_name" => _x("Film", "vrsta objave singular name"), ...); // Postavite različite informacije o vrsti objave $args = array("labels" => $ labels, "description" => "Moja prilagođena vrsta objave", "public" => true, ... // Registrirajte tip objave filma sa svim informacijama sadržanim u nizu $arguments register_post_type("movie", $); args);

Sve prilagođene funkcije moraju imati prefiks kako bi se izbjegli sukobi s drugim dodacima ili funkcijama teme. Ovdje će se koristiti prefiks LC.

Dva parametra za funkciju register_post_type() ovo:

  1. Naziv tipa zapisa, maksimalno 20 znakova i ne smije sadržavati razmake ili velika slova
  2. Asocijativni niz tzv $args, koji sadrži informacije o tipu zapisa u obliku parova ključ/vrijednost 'ključ' => 'vrijednost'

Niz $args

Najčešće korišteni ključevi za niz $args prikazano ispod, sve su opcione:

  • etikete– niz niz, koji specificira različite dijelove teksta, na primjer "Dodaj novi unos" može se preimenovati u "Dodaj novi film". Ključevi za niz oznaka su opisani u nastavku sa objašnjenjima;
  • opis– kratak i sažet opis tipa zapisa, može se prikazati u predlošcima tipa, ali se ne koristi nigdje drugdje;
  • javnosti– da li je tip objave vidljiv autoru i posetiocima, podrazumevana vrednost je FALSE, što znači da se ne pojavljuje čak ni u Admin konzoli;
  • exclude_from_search– da li će se zapisi ovog tipa pojavljivati ​​u redovnim rezultatima pretrage, podrazumevana vrednost je suprotna od public;
  • publicly_queryable– može li se ova vrsta objave preuzeti korištenjem URL-a, kao što je http://www.mywebsite.com/?post_type=movie, ili u naprednoj upotrebi putem funkcije query_posts(). Zadana vrijednost je javna;
  • show_ui– da li su linkovi menija i uređivač poruka povezani na administratorskoj kontrolnoj tabli. Zadana vrijednost je javna;
  • show_in_nav_menus– da li će se unosi ovog tipa dodati u navigacijske menije kreirane na stranici Izgled -> Izbornici, zadana vrijednost je javna;
  • show_in_menu– da li je veza tipa objave prikazana u navigaciji administratorske konzole. FALSE – skriva vezu. TRUE – dodaje vezu kao novu vezu najvišeg nivoa. Unos linije vam omogućava da postavite vezu unutar postojeće veze najvišeg nivoa, odnosno unesete parametre options-general.php stavlja pod vezu Postavke.
  • show_in_admin_bar– hoće li se ova vrsta objave pojaviti iznad admin trake, ispod linka + Novo
  • menu_position– pozicija novog linka u navigacijskom meniju admin konzole, 5 se nalazi ispod Objave, 100 se nalazi ispod Postavke, cijela lista pozicija se nalazi u WordPress Codex-u
  • hijerarhijski– da li se zapis može dodijeliti nadređenom zapisu, ako je vrijednost TRUE, tada niz $supports mora sadržavati parametar 'page-attributes'
  • podržava– selektivno omogućava funkcije objava kao što su: slike, fragmenti teksta, prilagođena polja, itd. Ako je postavljeno na FALSE, tada se umjesto niza isključuje uređivač za ovu vrstu objave - korisno ako želite zatvoriti sve objave ovog ukucajte iz uređivanja, ali ih ostavite vidljivima (popis vrijednosti niza nee)
  • taksonomije– niz taksonomija koje se mogu primijeniti na publikacije ovog tipa, taksonomije moraju biti već registrirane - one se ne kreiraju odavde!
  • has_archive– hoće li postovi ovog tipa imati arhivske stranice, URL ima strukturu permalinka, a deskriptivni dio URL-a je parametar 1 funkcije register_post_types(), odnosno prikazat će se http://www.mywebsite.com/movie_reviews/ sve objave movie_review.
  • query_var– TRUE ili FALSE određuje da li se objava može prikazati upitom URL-a za vrstu objave i naziv objave, tj. „http://www.mywebsite.com/? film=the-matrix‘. Ako unesete red teksta, trebate staviti tekst nakon znaka , tako da će 'film' na kraju izgledati kao '? film=the-matrix‘.

Nizovi oznaka

Prvi ključ u nizu $args pozvao etikete i mora biti niz. Određuje različite dijelove teksta koji se odnose na vrstu objave. Budući da ovdje može biti puno podataka, najbolje je kreirati niz tzv $labels za njihovo skladištenje. Kod iznad je malo jasnije šta ovo znači.

Ispod su neki važni ključevi za niz oznaka, svi su opcioni:

  • ime– opći nazivi za tip poruke, na primjer, filmovi (filmovi)
  • singular_name– naziv za jedan unos ove vrste, na primjer, film (film)
  • add_new– zamjena teksta 'Dodaj novo' navedenim tekstom, na primjer, 'Dodaj film'
  • add_new_item– zamjena za 'Dodaj novu objavu', na primjer, sa 'Dodaj novi film'
  • edit_item– zamjena za 'Uredi objavu', na primjer, sa 'Uredi film'
  • Featured_image– zamjena za 'Istaknuta slika' u uređivaču objava, na primjer, sa 'Poster filma'
  • set_featured_image– zamjenjujući "Postavi istaknutu sliku", na primjer, ovom opcijom "Dodaj filmski poster"
  • menu_name– promenite tekst veze na najvišem nivou, podrazumevani tekst veze je naziv ključa

Niz podržava

// Omogući posebne funkcije u uređivaču postova za moj tip objave $supports = array ("title", "editor", "author", "thumbnail"); // Onemogući SVE funkcije uređivača postova za moj tip objave $supports = FALSE;

Jedan od ključeva u nizu $args pozvao podržava. Ovo je jednostavan niz u koji snimate listu funkcija uređivača objava koje želite da omogućite za svoj tip objave. Standardno su omogućeni samo naslov i uređivač.

Također možete postaviti FALSE umjesto niza da onemogućite sve funkcije uređivača, isključujući i naslov i područje za dodavanje sadržaja. To znači da se unos ne može uređivati, ali je i dalje u potpunosti vidljiv.

Evo liste funkcija koje možete uključiti u niz $supports:

  • naslov (naslov)
  • urednik
  • autor – NAPOMENA: ovo vam omogućava da promijenite autora objave
  • sličica (ikona)
  • izvod (fragment teksta)
  • trackbacks
  • prilagođena polja (prilagođeno polje)
  • komentari
  • revizije (verzije)
  • atributi stranice
  • post-formati (post formati)

Kreiranje prilagođenog tipa WordPress posta putem dodatka

Sada kada znamo koji su parametri potrebni funkciji, možemo kreirati vlastiti dodatak, napisati vlastitu funkciju i priložiti je događaju init.

lc_custom_post_movie() na zakačicu init akcije add_action("init", "lc_custom_post_movie"); // Prilagođena funkcija za registraciju funkcije tipa objave filma lc_custom_post_movie() ( // Postavite oznake, ova varijabla se koristi u nizu $args $labels = array("name" => __("Movies"), "singular_name " => __("Film"), "add_new" => __("Dodaj novi film"), "add_new_item" => __("Dodaj novi film"), "edit_item" => __("Uredi film") , "new_item" => __("Novi film"), "all_items" => __("Svi filmovi"), "view_item" => __("Pogledaj film"), "search_items" => __("Traži filmove "), "featured_image" => "Poster", "set_featured_image" => "Dodaj poster"); // Argumenti za naš tip objave, koji se unose kao parametar 2 register_post_type() $args = array("labels" => $labels, "description" => "Sadrži naše filmove i specifične podatke za film", "public" => true, "menu_position" => 5, "supports" => array("title", "editor", " sličica", "izvod", "komentari", "prilagođena polja"), "has_archive" => istina, "show_in_admin_bar" => istina, "show_in_nav_menus" => istina, "has_archive" => istina, "query_var" = > "film" // Pozovite stvarnu WordPress funkciju // Parametar 1 je naziv za tip objave // ​​Parametar 2 je niz $args register_post_type("movie", $args); ) // Hook lc_custom_post_movie_reviews() na zakačicu init akcije add_action("init", "lc_custom_post_movie_reviews"); // Prilagođena funkcija za registraciju tipa objave recenzije filma lc_custom_post_movie_reviews() ( // Postavite oznake, ova varijabla se koristi u nizu $args $labels = array("name" => __("Filmske recenzije"), "singular_name" => __("Recenzija filma"), "add_new" => __("Dodaj novu recenziju filma"), "add_new_item" => __("Dodaj novu recenziju filma"), "edit_item" => __( "Uredi filmsku recenziju"), "new_item" => __("Nova recenzija filma"), "all_items" => __("Sve recenzije filmova"), "view_item" => __("Prikaži recenzije filmova"), " search_items" => __("Pretraži filmske recenzije")); // Argumenti za naš tip objave, koji se unose kao parametar 2 register_post_type() $args = array("labels" => $labels, "description" = > "Zadržava naše recenzije filmova", "public" => istina, "menu_position" => 6, "supports" => array("title", "editor", "thumbnail", "excerpt", "comments", " custom-fields"), "has_archive" => true, "show_in_admin_bar" => true, "show_in_nav_menus" => true, "has_archive" => true); // Pozovite stvarnu WordPress funkciju // Parametar 1 je naziv za tip posta // $args niz ide u parametar 2. register_post_type("review", $args); )

Ako omogućite ovaj dodatak, vidjet ćete novu vezu u navigacijskoj traci na konzoli administratora, odmah nakon veze Objave.

Kada lebdite mišem, biće prikazane stavke menija 'Prikaži sve' i 'Dodaj novo', tekst će odgovarati onome što je navedeno u nizu $labels. Pogledajte u uređivaču gdje su se veze promijenile.

Ograničite prilagođena polja za date zapise

Kada dodate svoja polja u zapis, polja se čuvaju i možete brzo dodati bilo koja u novi zapis. Prilagođena polja koja ste dodali pojavit će se na padajućoj listi svakog unosa. Ovo može otežati pronalaženje polja koje tražite u određenim vrstama postova. Ako želite ograničiti prilagođena polja tako da budu dostupna samo za određene vrste postova, onda je najlakši način preko dodatka.

get_post_meta()

  • uzima 3 parametra i vraća rezultat
  • prvi parametar je ID posta, možete ga koristiti ovdje $post->ID da dobijete ID trenutno prikazanog unosa
  • drugi parametar – naziv polja prilagođenog zapisa, osjetljivo na velika i mala slova
  • treći parametar je tipa boolean, tzv $single i može biti TRUE (vraća rezultat kao string) ili FALSE (vraća niz).

NAPOMENA: Možete kreirati više prilagođenih polja sa istim imenom i različitim vrijednostima. Ako postoji više polja sa istim imenom, postavljanjem FALSE će se vratiti njihov niz.

ID, "Box Art", TRUE); if (!empty($movie_box_art)) ( ?>
" alt=" !}">

Od funkcije get_post_meta() vraća vrijednost, možete koristiti vrijednost u uvjetnom izrazu da u skladu s tim promijenite izgled.

U gornjem primjeru provjeravamo da li film sadrži okvir koji mu je dodijeljen kao prilagođeno polje. Ako $movie_box_art nije prazno, prikaži div i sliku.

Prikaz naprednih prilagođenih polja

// Prikaz vrijednosti polja the_field("IME POLJA"); // Povratna vrijednost polja get_field("IME POLJA");

Dodatak Advanced Custom Fields nudi vlastite funkcije i kratke kodove za prikaz polja.

the_field('IME POLJA');

Prikazuje vrijednost određenog polja, morate koristiti ime polja koje ste naveli prilikom kreiranja grupe polja.

get_field('IME POLJA');

Vraća vrijednost navedenog polja, korisnog za uvjetne izraze.

Ovo su funkcije koje će vam najvjerovatnije trebati. Postoji mnogo dodatnih funkcija i možete ih pronaći u .

Shortcodes

Možete prikazati polja direktno na objavi koristeći gornji kod.

Prikažite prilagođeni tip objave na glavnoj stranici

// Zakači našu prilagođenu funkciju na pre_get_posts akciju zakačicu add_action("pre_get_posts", "add_reviews_to_frontpage"); // Promijenite glavnu funkciju upita add_reviews_to_frontpage($query) ( if (is_home() && $query->is_main_query()) ( $query->set("post_type", array("post", "movie", "review ")); ) vrati $query; )

Prilagođeni tipovi postova se ne pojavljuju na glavnoj stranici prema zadanim postavkama, tako da morate kreirati novu funkciju koja poziva metodu set objekta WP_Upit WordPress.

Funkcija provjerava da li je posjetitelj na početnoj stranici i da li je aktivni zahtjev primarni zahtjev koji generira WordPress.

$query->set() uzima dva parametra:

  • prvi parametar je prioritet koji želite promijeniti, u našem slučaju mijenjamo prioritet post_type
  • drugi parametar je niz koji želite proslijediti kao vrijednost atributa post_type

U gornjem primjeru koda, niz počinje sa 'post' - to je razlog zašto je svaki WordPress post tipa 'post' i još uvijek želimo da ga uključimo na glavnu stranicu.

Ako želite koristiti samo prilagođene postove određene vrste na svojoj početnoj stranici, možete ukloniti 'objave' i koristiti vlastitu vrstu objave.

Vrijednost koju unesete mora odgovarati parametru 1 funkcije register_post_type().

Zaključak

U ovom vodiču pokazujemo kako kreirati prilagođene tipove i koje podatke trebate imati za to. Fleksibilnost prilagođenih tipova objava pruža vrijednu funkcionalnost za bilo koju WordPress stranicu.

Odgovori

Na osnovu https://toster.ru/q/276441 Jasno je da mnogo toga zavisi od projekta, pa ovaj post treba prilagoditi vašem slučaju.

* Sigurnost:
- Svaki argument metode jednostavnog tipa mora se provjeriti za tip u slučaju proxyja i za granične vrijednosti u slučaju obrade. Ako nešto krene naopako, izbacuje se izuzetak. Ako se metoda s nekoliko argumenata sastoji od 80% provjere argumenata, to je sasvim normalno))
- Nema trigger_error, samo izuzeci.
- Izuzeci MORAJU biti ljudski razumljivi, korisniku se mogu dati sve vrste "Nešto je pošlo po zlu", ali dnevnik treba da sadrži izuzetak sa praćenjem steka i čovjeku razumljivim opisom onoga što je tu pošlo po zlu.
- Svaki argument (objekat) metode mora biti naznačen tipom za svoju klasu ili interfejs.
- Za ocjenu se po pravilu izriče stroga opomena
- @ je dozvoljen samo u očajnim situacijama, na primjer provjera json_last_error.
- Prije rada sa bazom podataka, obavezna je provjera podataka.
- Ne == i!=. Sa prekidačem - jedini izuzetak, ovisno o situaciji.
- Ako metoda vraća ne samo bool, već i nešto drugo, potrebna je stroga provjera sa ===, ili!==.
- Nema uslova sa zadacima unutra. while($row = ...) je takođe neprihvatljiv.
- Magični getteri/seteri su dozvoljeni samo u očajnim situacijama, inače su zabranjeni.
- Konkatenacije u sql-u - samo u bezizlaznim situacijama.
- Parametri u sql-u - SAMO preko čuvara mjesta.
- Nema globalnih varijabli.
- Datumi u obliku stringa su dozvoljeni samo u šablonima iu bazi podataka u PHP kodu se odmah konvertuju u \DateTimeImmutable (u očajnim situacijama, \DateTime je dozvoljen);
- Naravno, zavisi od projekta, ali po pravilu treba da postoje samo dve ulazne tačke: index.php za web i konzolu (ili nešto drugo što se zove) za konzolu.

* Codestyle PSR-2 + PSR-5 barem, + gomila strožijih zahtjeva (za početak, sve što je označeno kao TREBA u PSR-u postaje MORA)
- U PhpStormu ni jedan red ne treba da bude istaknut (izuzetak su greške u kucanju, na primer, rečnik ne poznaje neke od skraćenica usvojenih u vašem projektu). U ovom slučaju, dozvoljeno je koristiti /** @noinspection *** */ za bezizlazne situacije.
- Ako neko kaže da piše u drugom uređivaču, a to nije istaknuto, ipak šalje na doradu.

* Organizacija koda:
- Nema globalnih funkcija.
- Klase bez imenskog prostora su dozvoljene samo u ekstremno očajnim situacijama.

* Testabilnost (u smislu lakoće testiranja) koda bi trebala biti visoka.
- Pokrivenost koda je potrebna za sve moguće slučajeve upotrebe svake javne metode sa mock-ovima zavisnosti.

* MVC principi:
- Nema obrade korisničkih unosa u modelima, bukvalno uopšte.
- Nema upita bazi podataka iz šablona.
- Nema layout/js/css/sql-in u kontrolerima.
- U modelima NEMA MAGIJE, samo privatne nekretnine + getteri sa seterima.
- Modelima je dozvoljeno da koriste metod spremanja (ako je dostupan, naravno) samo u izuzetnim situacijama. U svim ostalim - ili ubaciti ili ažurirati.

* SOLID principi:
- Nema univerzalnih objekata koji mogu sve.
- Ako je metoda za internu upotrebu privatna, nije javna.
- Statičke metode su dozvoljene samo u slučajevima beznađa.

* DRY princip je dozvoljeno kršiti u sljedećim slučajevima:
- Eksplicitno razdvajanje dužnosti
- Na testovima (svaki test treba da bude što nezavisniji)

* Rad sa bazom podataka:
- Zahtjev u ciklusu mora biti ZAISTA opravdan.
- Teška opomena za ORDER BY RAND()
- Pretraga ne po ključevima (naravno, ako tabela NIJE 5 redova) je zabranjena.
- Pretraga bez LIMIT-a (opet, ako tabela NIJE 5 redova) je zabranjena.
- SELECT * - zabranjeno.
- Denormalizacija baze podataka mora biti opravdana.
- MyISAM se ne koristi (pa)))
- U transakciji je potrebno više operacija, s vraćanjem unatrag ako nešto krene po zlu.
- Baza podataka ne treba da sadrži poslovnu logiku, već samo podatke u holističkom obliku.
- Ne bi trebalo biti nepotrebnog trzanja baze podataka gdje se to može učiniti bez nje.

* Keš memorija se mora obrisati pod dva uslova (ne jedan od njih, već dva):
- Vreme.
- Neuspjeh po poslovnoj logici.
Dozvoljeno je samo neko vrijeme u očajnim situacijama, ali tada je vrijeme kratak period.
- Prilikom izračunavanja ključeva keša treba koristiti varijablu iz konfiguracije aplikacije (u slučaju ažuriranja, keš se resetuje kodom, a ne flešom keš servera). U slučaju korištenja mnogih servera, ovo je vrlo zgodan i fleksibilan alat za diplomatiju.

* O ljudima:
- "Navikla sam da pišem ovako i nastaviću tako" nije pitanje, proći ćete recenziju tek kada promijenite mišljenje.
- "Pišem u vim-u i tako mi je zgodno" - odlično, u njemu pišem i kod konzole)) ali postoje zahtjevi za kod, ako ih ne možete učiniti, nećete proći recenziju.
- "Kopirao sam ovu strašnu metodu i promijenio 2 reda" - ovo je naravno divno, ali prema etiketi, vi ste autor cijele ove metode, pa da ne pričamo gluposti, ok?
- "Radi!" - ova fraza se prevodi otprilike ovako: "da, razumijem da pišem potpunu glupost, ali ne mogu normalno pisati jer ne mogu", jesam li vas dobro razumio?))
- "Meni sve radi!" - Drago mi je zbog tebe, ali šta je sa produkcijom?
- "Tamo je sve jednostavno" - nemojte koristiti riječ "jednostavno", od riječi "apsolutno". Evo dijela koda (prvi na koji naiđete sa složenom poslovnom logikom), gdje je greška (nije bitno da li postoji ili ne)? Gledas vec 2 minute sta je problem sve je "jednostavno"))

* Bilo šta:
ActiveRecord (ovo vam govorim kao bivši Yii fan) je potpuno sranje, uzmite ga kao original. U stvari, imate modele povezane s bazom podataka koji nekontrolirano lutaju po projektu. Više puta sam naišao na činjenicu da u istim šablonima zovu save ili update (trebalo bi biti spaljen zbog ovoga).

osnove:
1. Prisutnost kritičnih grešaka i zastarjelih funkcija.
2. Upotreba šara, elegancija rješenja.
3. Čitljivost koda, prisustvo komentara, prisustvo dokova.
4. Usklađenost sa paradigmama i konvencijama (na primjer, kršenje MVC-a).

Sekundarni/nevažni:
1. Performanse koda (osim za highload)
2. Potrošnja memorije (isključujući velike podatke)
3. Efikasnost SQL upita (sa izuzetkom vrlo nezgodnih)
4. Izbjegavanje nevažnih, ali potencijalnih uskih grla u podacima (na primjer, usporavanje sistema datoteka kada postoji veliki broj slika u folderu za otpremanje)
5. Novost korišćenih tehnologija.
6. Opravdano\Neopravdano\Pretjerano bicikliranje.

  1. Kod ne sadrži očigledne ili potencijalne greške.
  2. Kod radi kako je opisano u dokumentaciji, tehničkim specifikacijama ili pratećim komentarima.
  3. Stil kodiranja slijedi prihvaćena pravila kodiranja
  4. Kod ima propratne komentare prema phpDoc-u
  5. Ugniježđenje blokova ne prelazi 4. nivo.
  6. Kôd ne generiše poruke na strogom nivou, upozorenju, obaveštenju ili zastarelom nivou. Ako se to ne može izbjeći, onda neposredno prije reda koji ovo generiše, morate prisilno onemogućiti error_reporting, a odmah nakon reda, error_reporting mora biti uključen na originalnu vrijednost (koja je bila prije). Takav kod mora biti dokumentovan na poseban način.
  7. Komentirani dio koda treba ukloniti.
  8. HTML i JavaScript umetci su zabranjeni u PHP kodu (osim za phpTemplate). Sva umetanja moraju biti napravljena pomoću posebnih šablona.
  9. Klase, funkcije, varijable i konstante moraju se imenovati logično na način koji je čitljiv za ljude na engleskom u skladu sa standardima kodiranja. Imenovanje u transliteraciji na ruskom ili drugim jezicima nije dozvoljeno
  10. Opseg varijabli i metoda klasa uvijek mora biti definiran (privatno, zaštićeno, javno).
  11. Veličina jedne metode ne smije prelaziti 40-50 redova.
  12. Varijabla koja se koristi u petlji ili u uslovnom bloku mora biti inicijalizirana unaprijed.
  13. Varijabla u svakom trenutku mora sadržavati samo jedan tip. Prazna varijabla mora sadržavati null. ($var = false; $var = "test"; nije dozvoljeno. $var = null je dozvoljeno; $var = "test";).
  14. Prilikom prosljeđivanja objekata klase metodama, mora se koristiti provjera tipa.

Jednog dana ste odlučili da napravite svoju web stranicu ili blog, a za sistem upravljanja odabrali ste WordPress... Kako je vrijeme prolazilo, vaša stranica je postajala sve čitljivija i tada ste shvatili da za još veću popularnost morate dodati malo funkcionalnosti na stranicu ili jednostavno automatizirati neke te radnje.

Odete u "skladište" WordPress dodataka i otkrijete da dodatak koji vam je potreban nije tamo. sta da radim? Šta da radim? Ako ste barem malo upoznati sa osnovama programiranja u PHP-u, rasporedom, onda vam neće biti teško Napišite sami dodatak za WordPress.

Sada idemo u "kuhinju" da pripremimo naš dodatak.

P.s. Ako nemate znanja u php-u i layoutu... ne brinite, zamolite nekoga da vam napiše potrebnu funkcionalnost :)

Pre nego što počnete da pišete dodatak, potrebno je da pogledate WordPress dokumentaciju, koja opisuje osnovne principe pisanja dodataka i neke primere koda.

Neću duplirati ovu informaciju, već ću odmah preći direktno na pisanje koda.

Hajde da napišemo jednostavan dodatak koji će vam omogućiti da sačuvate i prikažete recenzije o vašoj web lokaciji. Naravno, takvi dodaci već postoje, ali ovo će poslužiti kao primjer.

Prvo što ćemo učiniti je smisliti jedinstveno ime za naš dodatak - “ AdvUserReviews«.

Zatim ćemo kreirati novi direktorij “advuserreviews” u direktoriju vaše stranice “/wp-content/plugins/”. I u njemu ćemo kreirati datoteku “advuserreviews.php”. Ovo će biti glavni fajl koji će biti odgovoran za opštu inicijalizaciju. (Preporučljivo je koristiti UTF-8 kodiranje za datoteke).

Na samom početku datoteke morate navesti osnovne informacije o dodatku

Sada, ako odete na kontrolnu tablu, možete vidjeti da je sistem pronašao novi dodatak i nudi da ga aktivira. Ali još je rano za ovo.

Napisaćemo naš novi dodatak u OOP stilu i sva obrada podataka će se nalaziti u jednom fajlu. Kreirajmo glavni kostur datoteke.

// Zaustavi direktni poziv if(preg_match("#" . basename(__FILE__) . "#", $_SERVER["PHP_SELF"])) ( die("Nije vam dozvoljeno direktno pozvati ovu stranicu."); ) if (!class_exists("AdvUserReviews")) ( class AdvUserReviews ( // Pohranjivanje internih podataka public $data = array(); // Konstruktor objekta // Inicijalizacija funkcije glavnih varijabli AdvUserReviews() ( ) ) ) global $rprice; $rprice = novi AdvUserReviews();

Sada dodajmo sljedeći kod u konstruktor objekta:

Funkcija AdvUserReviews() ( globalni $wpdb; // Deklarirajte konstantu inicijalizacije našeg dodatka DEFINE("AdvUserReviews", true); // Naziv datoteke našeg dodatka $this->plugin_name = plugin_basename(__FILE__); // URL adresa za naš dodatak $ this->plugin_url = trailingslashit(WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__))) // Tabela za pohranjivanje naših recenzija // varijabla $wpdb mora biti deklarirana globalno $this->tbl_adv_reviews = $; wpdb->prefix , // Funkcija koja se izvršava kada je plugin aktiviran register_activation_hook($this->plugin_name, array(&$this, "activate") // Funkcija koja se izvršava kada je plugin deaktivirano register_deactivation_hook($this->plugin_name, array) (&$this, "deactivate") // Funkcija koja se izvršava prilikom deinstaliranja dodatka register_uninstall_hook($this->plugin_name, array(&$this, "uninstall")); );

U konstruktoru objekata koristimo 3 “kuke” ili “kuke” (šta su to?): register_activation_hook, register_deactivation_hook I register_uninstall_hook- ovo su funkcije koje se izvršavaju kada je dodatak aktiviran, deaktiviran, odnosno izbrisan.

Sada direktno implementirajmo ove funkcije.

/** * Aktivirajte dodatak */ function activate() ( globalno $wpdb; require_once(ABSPATH . "wp-admin/upgrade-functions.php"); $table = $this->tbl_adv_reviews; // Odredite verziju mysql-a if ( version_compare(mysql_get_server_info(), "4.1.0", ">=")) ( if (! prazno($wpdb->charset)) $charset_collate = "ZADANI POSTAV ZNAKA $wpdb->charset"; if (! empty( $wpdb->collate)) $charset_collate .= "COLLATE $wpdb->collate" ) // Struktura naše tabele za recenzije $sql_table_adv_reviews = " CREATE TABLE `".$wpdb->prefix."adv_reviews` ( `ID` INT(10) UNSIGNED NULL AUTO_INCREMENT, `review_title` VARCHAR(255) NOT NULL DEFAULT "0", `review_text` TEKST NIJE NULL, `review_date` TIMESTAMP NOT NULL DEFAULT CURRENT_review_name, CURRENT_TIMESTAMP, 0 `review_user_email` VARCHAR(200) NULL, PRIMARNI KLJUČ (`ID`))".$charset_collate.";"; // Provjerava postojanje tabele if ($wpdb->get_var("prikaži tabele poput ".$table. """ ) != $table) ( dbDelta($sql_table_adv_reviews); ) ) /** * Deaktiviraj dodatak */ funkcija deactivate() ( vrati true; ) /** * Uklanjanje dodatka */ funkcija uninstall() ( globalno $wpdb; $wpdb->query("ISPUSTI TABLU AKO POSTOJI ($wpdb->prefix)adv_reviews"); )

Varijabilna $wpdb Odgovoran za upite bazi podataka. Funkcija dbDelta analizira trenutnu strukturu tabele, upoređuje je sa željenom strukturom tabele i dodaje ili modifikuje tabelu po potrebi.

Shodno tome, kada je dodatak aktiviran, kreira se struktura tabele za pohranjivanje recenzija. Kada je dodatak deaktiviran, ništa se ne događa, ali kada se izbriše, brišemo našu tablicu. Akcije se mogu detaljnije razumjeti iz izvornog koda.

Osnovna struktura novog dodatka je spremna. Sada treba da počnemo da pišemo funkcionalni deo. Da bismo to učinili, moramo dodati sljedeće linije koda u konstruktor klase:

// Ako smo u adminu. interfejs if (is_admin()) ( // Dodaj stilove i skripte add_action("wp_print_scripts", array(&$this, "admin_load_scripts")); add_action("wp_print_styles", array(&$this, "admin_load_styles")); // Dodajte meni za dodatak add_action("admin_menu", array(&$this, "admin_generate_menu") else ( // Dodajte stilove i skripte add_action("wp_print_scripts", array(&$this, "site_load_scripts")); ) add_action("wp_print_styles", array(&$this, "site_load_styles") add_shortcode("show_reviews", array (&$this, "site_show_reviews"));

Pogledajmo ovaj dio koda detaljnije. Počnimo s administrativnim panelom.
funkcija " is_admin» provjerava u kojem režimu trenutno radimo - na web stranici ili u kontrolnoj tabli.
Zatim se za funkcije koristi nekoliko kukica:

  • wp_print_scripts- Dodajte potrebne javascript datoteke
  • wp_print_styles- Dodajte potrebne stilove
  • admin_menu- Dodavanje novog menija na kontrolnu tablu

Svaka kuka odgovara implementiranoj metodi u našoj klasi. U kojoj se izvode potrebne operacije.
Pogledajmo kod za povezivanje stilova i skripti

/** * Učitavanje potrebnih skripti za stranicu upravljanja * u administrativnom panelu */ funkcija admin_load_scripts() ( // Registrirajte skripte wp_register_script("advReviewsAdminJs", $this->plugin_url . "js/admin-scripts.js") wp_register_script( "jquery", $this->plugin_url . "js/jquery-1.4.2.min.js"); potrebni stilovi za kontrolnu stranicu * u administrativnom panelu */ funkcija admin_load_styles() ( // Registrirajte stilove wp_register_style("advReviewsAdminCss", $this->plugin_url . "css/admin-style.css"); // Dodajte stilove wp_enqueue_style( "advReviewsAdminCss");

Ovdje se koriste sljedeće funkcije.

Svaka radnja zavisi od proslijeđenog parametra “action”, odnosno “edit” - uređivanje recenzije, “submit” - čuvanje uređene recenzije i “delete” - brisanje recenzije.

Razmjena podataka sa stranicama za prikaz odvija se kroz svojstvo objekta “data”. Izvorni kod ovih stranica biće objavljen u arhivi sa ovim modulom na kraju članka. Neću ih ubacivati ​​ovdje, jer je tema već prilično velika.

Ovdje završavamo s administrativnim panelom i prelazimo na prikaz i dodavanje recenzija korisnika.

Da bismo rekli WordPress-u kada da pozove naš dodatak, moramo registrovati “kratki kod”, što je urađeno u konstruktoru naše klase. Pročitajte više o ovome.

Add_shortcode("show_reviews", niz (&$this, "site_show_reviews"));

Sada možete postaviti sljedeći kod na bilo koju stranicu web-mjesta i on će prisiliti funkciju koju smo naveli (proslijedili kao drugi parametar) da se izvrši. Ispod je izvorni kod za ovu funkciju.

/** * Lista recenzija na sajtu */ javna funkcija site_show_reviews($atts, $content=null) ( globalno $wpdb; if (isset($_POST["action"]) && $_POST["action"] = = " add-review") ( $this->add_user_review(); ) // Odaberite sve recenzije iz baze podataka $this->data["reviews"] = $wpdb->get_results("SELECT * FROM `" . $. this- >tbl_adv_reviews , ARRAY_A ## Omogući baferovanje ob_once("site_reviews.php"); ) privatna funkcija add_user_review() ( globalni $wpdb; $inputData = array("review_title" => strip_tags($_POST["review_title"]), "review_text" => strip_tags($_POST["review_text"]), " review_user_name " => strip_tags($_POST["review_user_name"]), "review_user_email" => strip_tags($_POST["review_user_email"]),); // Dodajte novu recenziju na stranicu $wpdb->insert($this- > tbl_adv_reviews, $inputData);

U principu, ovdje nema ništa komplicirano - pravi se SQL upit za odabir podataka, ali ako se prođe parametar "action", tada se prvo dodaje novi pregled. Ali vrijedi obratiti pažnju na puferiranje izlaza. Neophodan je za dobijanje podataka o ubačenoj stranici.

To je sve. Sada možemo vidjeti šta imamo. A preuzimanje dodataka i izvornih kodova možete ovdje.

Naravno, ovo je samo primjer kreiranja dodatka, ali će raditi i kao jednostavna gostujuća aplikacija ako je malo modificirate, na primjer, dodavanjem zaštite od botova i izlaza stranica po stranicu. Sretno kodiranje :)

Obrazac na web stranici:

Kontrolna tabla dodataka:

Recenzija uređivanja:

Možda će vas zanimati i: