Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Pritisak u muškim kategorijama php cat id. PHP kategorije (stablo kategorija)

Pritisak u muškim kategorijama php cat id. PHP kategorije (stablo kategorija)

Pozdrav svim čitateljima bloga WordPress iznutra u 2011. godini, čestitam vam nadolazeće i nadolazeće blagdane, želim vam puno zdravlja, sreće i veselja u narednih 360 dana. Kao što sam obećao u svom članku o planovima za sljedeću 2011., postupno poboljšavam sve svoje glavne blogove - ažuriram sustave, instaliram najnovije verzije dodataka i kopam po predlošcima za optimizaciju i ispravke bugova. Radilo se iznimno teško, čak bih rekao i vrlo mukotrpno – nađete jednu netočnost, odlučite je popraviti, a pred vama je 5 zasebnih projekata za svaki od kojih trebate napraviti ispravke. Pa, pošto sam već planirao sve ovo napraviti, nema povratka, u isto vrijeme stječem dodatno iskustvo u procesu i već sam pronašao oko 5-6 tema za nove blog postove :) Danas ćemo pričati o kategorijama i funkcije za njihovo prikazivanje.

U jednom od prošlih članaka na blogu objavio sam hack koji pomaže. Ovo rješenje korišteno je za prikaz popisa kategorija na bočnoj traci pomoću funkcije wp_list_categories. U izlazu ste dobili ovakve zapise:

Sigurnost

Ako atribut title ima barem neko značenje za seo, onda bi bilo puno korisnije tamo smjestiti samo naziv kategorije, a ne sav ovaj nepotreban tekst. Zapravo, gornja veza za hakiranje pomogla je u rješavanju ovog problema. Ali to nije zadatak, sve je to bilo pošteno (radilo), što vam je omogućilo da predobradite rezultirajući popis bez da ga odmah prikažete. Ali što je s ostalim funkcijama za prikaz kategorija? - to je pitanje.

Primjerice, danas sam sasvim slučajno otkrio da se gomila nepotrebnog teksta u atributu title poveznice ispisuje i pri prikazu popisa kategorija za određeni post.

Cijeli je problem bio u tome što se ovdje koristi funkcija_kategorija, za koji, nažalost, ne možete postaviti parametar tako da se rezultat njegovog poziva ne prikaže odmah. Ali postoji još jedna funkcija u WordPressu, get_the_category, koja vraća niz objekata kategorije za određeni post.

Funkcija Get_the_category

Sintaksa za funkciju get_the_category je prilično jednostavna:

ime mačke; ?>

Programeri znaju da parametar polja nula daje prvi element, što zapravo objašnjava kako ovaj kod radi.

ISKAZNICA); var_dump ($ kategorije); ?>

ISKAZNICA); var_dump ($ kategorije); ?>

Da biste to učinili, morate proslijediti ID posta kao parametar funkcije, što se i događa u kodu.

Inače, na nekim stranicama koristim ovu funkciju za prikaz naziva kategorije objave, ali bez aktivne poveznice – to je samo dodatni koristan tekst na stranici. U tom slučaju možete primijeniti kod:

ime mačke. ""; )?>

ime mačke. ""; )?>

Pa, i konačno, nakon malo razmišljanja, završio sam s hakom za prikaz popisa kategorija za objavu bez korištenja funkcije_category, koju uspješno zamjenjujemo s get_the_category. Ako želite dodati kod izravno na mjesto predloška gdje se prikazuju kategorije, na primjer, datoteku archive.php, tada napišite nešto poput:

U principu možete postaviti kod za prikaz kategorija u funkcijsku datoteku, a zatim promijeniti the_category u datotekama predloška u novu funkciju, na primjer, nazvanu my_thecat (). Naravno, ne zaboravite dodati odgovarajući kod u datoteku functions.php prije zamjene:

funkcija my_thecat () (globalni $ post; foreach ((get_the_category ($ post -> ID)) kao $ kategorija) (echo "cat_ID)." "title =" ". $ kategorija -> cat_name." ">". $ kategorija -> ime_mačke. ";";))

funkcija my_thecat () (globalni $ post; foreach ((get_the_category ($ post-> ID)) kao $ kategorija) (echo "cat_ID)." "title =" ". $ category-> cat_name." ">". $ kategorija-> ime_mačke. ";";))

Testirao sam, sve radi. Ostaje samo jedno pitanje – koliko je sve to korisno i iznimno potrebno. Ako imate jedan blog s trajnim dizajnom koji želite učiniti najboljim, onda možete odvojiti nekoliko minuta i napraviti odgovarajuće izmjene. Ako imate puno takvih blogova, mislim da manipulacija naslovom neće donijeti neke posebne SEO koristi u smislu, lakše je kupiti linkove u Rotapostu na sve te projekte - usput, eksperiment o podizanju TCI-a u sustavu uspješno i pozitivno završeno, uskoro će biti izvješće o tome.

Prikaz prilagođenih kategorija postova

Komentari sugeriraju da gornji primjeri ne rade za prilagođene (prilagođene) vrste postova. Nisam se susreo s ovim zadatkom, pa vam mogu samo savjetovati da proguglate rješenje u blogovima na engleskom jeziku pomoću wordpress tipke za prikaz prilagođene vrste objave ili upotrijebite savjet korisnika Stinker (iz komentara). Na mjesto gdje se prikazuju kategorije, samo trebate zalijepiti kod:

Gdje je categoria_video prilagođena taksonomija posta. A sada detaljnije odakle i što. Na primjer imamo:

// Vrsta snimanja Video if (! function_exists ("video_cp")) (funkcija video_cp () ($ labels = niz ("name" => _x ("Video", "Opći naziv vrste objave", "video"), "singular_name" => _x ("Video", "Vrsta objave u singularnom nazivu", "video"), "menu_name" => __ ("Video", "video"), "parent_item_colon" => __ ("Roditelj:", "video"), "all_items" => __ ( "Svi videozapisi", "video"), "view_item" => __ ("Prikaz", "video"), "add_new_item" => __ ( "Dodaj novi video", "video"), "add_new" => __ ("Dodaj video", "video"), "edit_item" => __ ( "Uredi video", "video"), "update_item" => __ ("Ažuriraj video", "video"), "search_items" => __ ("Pronađi video", "video"), "not_found" => __ ("Nije pronađeno "," video ")," not_found_in_trash "=> __ ( "Nije pronađeno u košari", "video"),); $ args = niz ("labels" => $ labels, "supports" => niz ("naslov", "urednik", "izvod",), "taksonomije" => niz ("categoria_video"), // kategorija koju ćemo kreirati u nastavku (taksonomija)"public" => true, "menu_position" => 5, "menu_icon" => "dashicons-id-alt",); register_post_type ("video", $ args); ) add_action ("init", "video_cp", 0); // inicijalizirati) if (! function_exists ("categoria_video")) ( // Kategorije za slobodna radna mjesta funkcija categoria_video () ($ labels = niz ("name" => _x ( "Kategorije videa", "Opći naziv taksonomije", "categoria_video"), "singular_name" => _x ( "Kategorija videa", "Taxonomy Singular Name", "categoria_video"), "menu_name" => __ ("Kategorije", "categoria_video"), "all_items" => __ ("Kategorije", "categoria_video"), "parent_item" => __ ( "Videozapisi roditeljske kategorije", "categoria_video"), "parent_item_colon" => __ ( "Kategorija roditeljskog videa:", "categoria_video"), "new_item_name" => __ ( "Nova kategorija", "categoria_video"), "add_new_item" => __ ( "Dodaj novu kategoriju", "categoria_video"), "edit_item" => __ ( "Uredi kategoriju", "categoria_video"), "update_item" => __ ( "Ažuriraj kategoriju", "categoria_video"), "search_items" => __ ("Pronađi", "categoria_video"), "add_or_remove_items" => __ ( "Dodaj ili ukloni kategoriju", "categoria_video"), "choose_from_most_used" => __ ( "Popularno pretraživanje", "categoria_video"), "not_found" => __ ("Nije pronađeno", "categoria_video"),); $ args = niz ("labels" => $ labels, "hierarchical" => true, "public" => true,); register_taksonomy ("categoria_video", niz ("video"), $ args); ) add_action ("init", "categoria_video", 0); // inicijalizirati }

// Vrsta video objave if (! Function_exists ("video_cp")) (funkcija video_cp () ($ labels = array ("name" => _x ("Video", "Opći naziv vrste objave", "video"), " singular_name "=> _x (" Video "," Vrsta objave Singular Name "," video ")," menu_name "=> __ (" Video "," video ")," parent_item_colon "=> __ (" Roditelj: ", "video"), "all_items" => __ ("Svi videozapisi", "video"), "view_item" => __ ("Prikaz", "video"), "add_new_item" => __ ("Dodaj novi videozapis" , "video"), "add_new" => __ ("Dodaj video", "video"), "edit_item" => __ ("Uredi video", "video"), "update_item" => __ ("Ažuriraj video" "," video ")," search_items "=> __ (" Pronađi video "," video ")," not_found "=> __ (" Nije pronađen "," video ")," not_found_in_trash "=> __ (" Nije pronađeno u košarici "," video "),); $ args = array (" labels "=> $ labels," podržava "=> niz (" naslov "," editor "," izvod ",)," taksonomije "= > array ("categoria_video"), // kategorija koju ćemo kreirati u nastavku (aka taksonomija) "public" => true, "menu_position" => 5, "menu_icon" => "dashicons-id-alt",); register_post_type ("video", $ args); ) add_action ("init", "video_cp", 0); // inicijalizira) if (! function_exists ("categoria_video")) (// Kategorije za slobodna radna mjesta function categoria_video () ($ labels = array ("name" => _x ("Kategorije videa", "Opći naziv taksonomije", "categoria_video" ")," singular_name "=> _x (" Video Kategorija "," Taksonomija Singular Name "," categoria_video ")," menu_name "=> __ (" Kategorije "," categoria_video ")," all_items "=> __ (" Kategorije "," categoria_video ")," parent_item "=> __ (" Videozapisi roditeljske kategorije "," categoria_video ")," parent_item_colon "=> __ (" Videozapisi roditeljske kategorije: "," categoria_video ")," new_item_name "=> __ ("Nova kategorija", "categoria_video"), "add_new_item" => __ ("Dodaj novu kategoriju", "categoria_video"), "edit_item" => __ ("Uredi kategoriju", "categoria_video"), "update_item" => __ ("Ažuriraj kategoriju", "categoria_video"), "search_items" => __ ("Pronađi", "categoria_video"), "add_or_remove_items" => __ ("Dodaj ili ukloni kategoriju", "categoria_video"), " select_from_most_used "=> __ (" Traži među popularno "," categoria_video ")," not_found "=> __ (" Nije pronađeno "," categoria_video "),); $ args = niz ("labels" => $ labels, "hierarchical" => true, "public" => true,); register_taksonomy ("categoria_video", niz ("video"), $ args); ) add_action ("init", "categoria_video", 0); // inicijalizirati)

Hvala korisniku Stinker na savjetu, možda će vam biti od koristi.

p.s. Stražar. Na jednom od blogova Runeta pronađen je prekrasan izbor tema za wordpress portfelj iz 17 besplatnih visokokvalitetnih predložaka.

Naši su daleki preci nekoć bili prisiljeni koristiti golublju poštu i usluge glasnika za prijenos poruka na velike udaljenosti. Tada je izumljen primitivni telegraf, a otprilike u isto vrijeme pojavila se i papirnata pošta. I dugo je bilo potrebno slati čestitke ili razglednice unaprijed. Ali svi su ti arhaizmi ostali u dalekoj prošlosti. Sada možete poslati glasovnu rođendansku čestitku na svoj telefon bilo kojoj vama bliskoj i dragoj osobi u bilo kojem trenutku za samo par minuta!

Glasovne rođendanske čestitke - najbolji dar za prijatelje i voljene osobe

Blagdansko jutro treba započeti čestitkama i darovima! Želite li obradovati voljenu osobu cool iznenađenjem, ali ne znate kako to učiniti? Ako vokal nije uvršten na popis vaših zasluga i talenata, onda je bolje ne pjevati rano ujutro u tube "Happy bizdeyo tu uuuu". Rođendanske čestitke možete naručiti kod nas telefonom. Odaberite cool glasovni pozdrav od Putina s Yotafonom i Ladom Kalinom kao poklon, komični skup hrabrog Ministarstva za hitne slučajeve, osobne čestitke šokantnog Žirinovskog, zapaljivu gruzijsku pjesmu, parodiju, prožetu pjesmu. Imamo zvučne rođendanske čestitke na vašem telefonu za djecu i odrasle za svaki ukus!

Prednosti audi rođendanskih čestitki na telefonu

Nije uvijek moguće ugoditi rođendanskoj osobi od samog jutra svečanim vatrometom, slatkišima, šampanjcem i darovima. Ako je vaš prijatelj ili voljena osoba jako daleko, onda se možete ograničiti na banalan telefonski poziv ujutro. Mislite li i da je jako dosadno i staromodno? Zatim iskoristite mogućnosti novih tehnologija - naručite čestitke za sretan rođendan na svom telefonu i dajte prekrasno raspoloženje! Takva šala ili glazbeni dar zasigurno će ugoditi rođendanskom dječaku. On će biti ugodno iznenađen vašim neobičnim iznenađenjem!

Odaberite najbolje glasovne čestitke s temom sretnih rođendana

Naš servis glasovnih čestitki, SMS čestitki i telefonskih podvala ima zlatnu kolekciju viceva, viceva i glazbenih skladbi. Možete odabrati bilo koju rođendansku čestitku. stranica je pripremila zvučne darove za vašu braću i sestre, roditelje, prijatelje, voljenu osobu, zaposlenike i susjede. Sve rođendanske čestitke su cool i smiješne. Želite li ugoditi rođendanskoj djevojci zapaljivom gruzijskom pjesmom, parodijom na poznatog srčanog udarača Nikolaja Baskova ili dubokom pjesmom Leva Leshchenka? Sve rođendanske čestitke imamo telefonskim pozivom!

  • Glasovne rođendanske čestitke po imenima od A do Ž bit će ugodno iznenađenje za rođendansku osobu. Takav glazbeni ili duhoviti pozdrav doživljava se kao pripremljeno osobno za njega!
  • Glazbene karte za horoskopski znak oduševit će pomalo praznovjernog ljubitelja horoskopa i donijeti mu sreću u idućoj godini.
  • Glasovne čestitke za sretan rođendan ženi bit će prekrasan dar za majke, bake, učiteljice ili djevojke.
  • Razglednice za voljene osobe, smiješne, od poznatih osoba, pomoći će vam da ispričate o svojim osjećajima, razveselite vas i postavite u pozitivno raspoloženje.
  • Tematske čestitke za sestru, djevojku, voljenog dečka, za baku ili za dijete omogućit će vam da odaberete najprikladniji pojedinačni dar.
  • Glasovne čestitke za sretan rođendan čovjeku bit će prekrasno iznenađenje za godišnjicu, oduševit će dobrog starog prijatelja ili dobrog prijatelja.

Naše sms rođendanske čestitke sadrže dobre i iskrene želje. Je li vam teško pronaći prave riječi da voljenoj osobi izrazite svoju ljubav i zahvalnost, da mu zahvalite na dugogodišnjem čvrstom prijateljstvu? Odaberite gotove rođendanske čestitke za muškarca ili ženu, pošaljite glasovnu čestitku i ništa ne brinite!

Dajte svojim najdražima toplinu, brigu i pozitivne emocije!

Danas nam je cilj stvoriti hijerarhijsku strukturu kategorija. Važno nam je da je zgodno pohranjivati ​​kategorije i da ih je lako prikazati tamo gdje su nam potrebne.

Ponekad se jednostavno čini kompliciranim, zato ću izložiti nekoliko isječaka koda za koje se nadam da će vam biti korisni za implementaciju php kategorija u obliku stabla.

Dakle, struktura bi se trebala sastojati od id kategorije (id), naziva kategorije (ime) i, naravno, id nadređene kategorije (parent_id). U MySQL-u to izgleda ovako:

STVORI TABLICU AKO NE POSTOJI `kategorija` (` id` int (10) nepotpisan NOT NULL AUTO_INCREMENT, `ime` varchar (255) NOT NULL,` parent_id` int (11) NOT NULL, PRIMARNI KLJUČ (`id`)) MOTOR = InnoDB ZADANI CARSET = utf8 AUTO_INCREMENT = 0;

Minimalna i razumljiva struktura tablice za pohranjivanje kategorija.

UMETNI U `kategoriju` (` id`, `ime`,` parent_id`) VRIJEDNOSTI (1, "Telefoni i tableti", "0"), (2, "Automobili", "0"), (3, "Samsung" "," 1 "), (4," Apple "," 1 "), (5," LG "," 1 "), (6," Ford "," 2 "), (7," Lexus ", "2"), (8, "BMW", "2"), (9, "Galaxy Tab 4", "3"), (10, "Galaxy S6", "3");

Gdje je parent_id = 0, ova kategorija nema nadređenu kategoriju.

Ovdje je sve jasno i jednostavno. Sada budimo prisutni na izlazu popisa kategorija. Ali za ispravan prikaz popisa, prvo trebamo dobiti cijeli popis php kategorija, a tek onda pomoću rekurzije formirati naše stablo. Sljedeća funkcija služi za dobivanje ovog popisa:

Funkcija get_cat () (// upit baze podataka $ sql = "SELECT * FROM kategorija"; $ rezultat = mysql_query ($ sql); if (! $ Rezultat) (vrat NULL;) $ arr_cat = array (); if ( mysql_num_rows ( $ rezultat)! = 0) (// U petlji formirajte niz za ($ i = 0; $ i< mysql_num_rows($result);$i++) { $row = mysql_fetch_array($result,MYSQL_ASSOC); //Формируем массив, где ключами являются адишники на родительские категории if(empty($arr_cat[$row["parent_id"]])) { $arr_cat[$row["parent_id"]] = array(); } $arr_cat[$row["parent_id"]] = $row; } //возвращаем массив return $arr_cat; } }

// dobivamo niz direktorija $ result = get_cat ();

Sada nam je potrebna funkcija s rekurzijom

Funkcija view_cat ($ arr, $ parent_id = 0) (// Uvjeti za izlazak iz rekurzije if (prazno ($ arr [$ parent_id])) (return;) echo "

    "; // ponavljanje niza u petlji i prikaz za ($ i = 0; $ i< count($arr[$parent_id]);$i++) { echo "
  • ". $ arr [$ parent_id] [$ i] [" naziv "]." "; // rekurzija - provjerite postoje li podređene kategorije view_cat ($ arr, $ arr [$ parent_id] [$ i] [" id "] ); odjek "
  • ";) jeka"
"; }

Sada ostaje samo prikazati imenik na zaslonu pomoću rekurzivne funkcije

View_cat ($ rezultat);

I općenito, to je sve. Na taj način možemo dobiti cjelovito stablo kategorija s beskonačnim potkategorijama.

Dobiva podatke za navedenu kategoriju.

Ako u parametar $ kategorije proslijedite objekt koji sadrži informacije o kategoriji, ti će se podaci spremiti u predmemoriju.

Ako proslijedite ID kategorije u parametar kategorije $, podaci o kategoriji bit će dohvaćeni iz baze podataka ili iz predmemorije, ako postoji.

Obratite pažnju na funkciju get_term ()što je identično get_category. Uz njegovu pomoć možete dobiti podatke iz taksonomije koja nije kategorija.

✈ 1 put = 0,000443 s = brzo| 50 000 puta = 0,92 s = vrlo brzo| PHP 7.0.5, WP 4.5.1

Nema udica.

Korištenje

$ cat = get_category ($ kategorija, $ izlaz, $ filter); $ kategorija (broj) (obavezno) ID kategorije ili objekt koji sadrži podatke o kategoriji.
Zadano: ne$ izlaz (konstantno)

Kakav niz vratiti podatke:

  • OBJEKT - objekt;
  • NIZ_A - asocijativni niz;
  • ARRAY_N je indeksirani niz.

Zadana postavka: OBJEKT

$ filter (crta) Filter (kakav filter nisam sigurno razumio).
Zadano: "sirovo"

Primjeri

#jedan. Prikažimo podatke kategorije na čijoj smo stranici (trenutačno):

$ thisCat = get_category (get_query_var ("mačka")); print_r ($ thisCat);

Kao rezultat toga, vidjet ćemo nešto poput ovoga:

StdClass Object (=> 85 => Naziv kategorije => naziv-kategorije => 0 => 85 => kategorija => => 70 => 0 => 85 => 0 => => Naziv kategorije => naziv kategorije = > 70)

Vrhunski povezani članci