Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Interesant
  • Presiunea in categoriile barbati php cat id. Categorii PHP (Arborele de categorii)

Presiunea in categoriile barbati php cat id. Categorii PHP (Arborele de categorii)

Salutări tuturor cititorilor blogului WordPress în interior in 2011, va felicit pentru sarbatorile care vin si care vin, va doresc multa sanatate, fericire si bucurii pentru urmatoarele 360 ​​de zile. Așa cum am promis în articolul meu despre planurile pentru următorul 2011, îmi îmbunătățesc treptat toate blogurile mele principale - actualizările sistemelor, instalând cele mai recente versiuni de pluginuri și cautând șabloane pentru optimizare și remedieri de erori. A funcționat extrem de greu, aș spune chiar foarte minuțios - găsești o inexactitate, te decizi să o repari și ai în față 5 proiecte separate, pentru fiecare dintre ele trebuie să faci corecții. Ei bine, din moment ce am plănuit deja să fac toate acestea, nu există cale de întoarcere, în același timp, câștig experiență suplimentară în acest proces și am găsit deja aproximativ 5-6 subiecte pentru articole noi de blog :) Astăzi vom vorbi despre categorii și funcții pentru afișarea acestora.

Într-unul dintre articolele anterioare de pe blog, am publicat un hack care ajută. Această soluție a fost folosită pentru a afișa lista de categorii în bara laterală folosind funcția wp_list_categories. În rezultat, aveți înregistrări ca aceasta:

Siguranță

Dacă atributul titlu are cel puțin o anumită semnificație pentru seo, atunci ar fi mult mai util să plasați acolo doar numele categoriei și nu tot acest text inutil. De fapt, linkul de hack de mai sus a ajutat la rezolvarea acestei probleme. Dar nu asta este sarcina, toate acestea au fost corecte (lucrate), ceea ce vă permitea să preprocesați lista rezultată fără a o afișa imediat. Dar cum rămâne cu celelalte funcții de afișare a categoriilor? - asta e întrebarea.

De exemplu, astăzi am descoperit destul de accidental că o grămadă de text inutil în atributul titlu al unui link este scris și atunci când se afișează o listă de categorii pentru o anumită postare.

Întreaga problemă a fost că este folosit aici funcția the_category, pentru care, din păcate, nu puteți seta un parametru astfel încât rezultatul apelului său să nu fie afișat imediat. Dar există o altă funcție în WordPress, get_the_category, care returnează o serie de obiecte de categorie pentru o anumită postare.

Funcția Get_the_category

Sintaxa pentru funcția get_the_category este destul de simplă:

nume_pisica; ?>

Programatorii știu că parametrul matricei zero scoate primul element, ceea ce explică de fapt cum funcționează acest cod.

ID); var_dump (categorii $); ?>

ID); var_dump (categorii $); ?>

Pentru a face acest lucru, trebuie să transmiteți ID-ul postării ca parametru de funcție, ceea ce se întâmplă în cod.

Apropo, folosesc această funcție pe unele site-uri pentru a afișa numele categoriei de postare, dar fără un link activ - este doar text suplimentar util pe pagină. În acest caz, puteți aplica codul:

nume_pisica. ""; )?>

nume_pisica. ""; )?>

Ei bine, și în cele din urmă, după o mică reflecție, am ajuns cu un hack pentru a afișa o listă de categorii pentru o postare fără a folosi funcția_category, pe care o înlocuim cu succes cu get_the_category. Dacă doriți să adăugați cod direct în locul șablonului în care sunt afișate categoriile, de exemplu fișierul archive.php, atunci scrieți ceva de genul:

Puteți, în principiu, să plasați codul pentru afișarea categoriilor în fișierul cu funcții și apoi să schimbați the_category din fișierele șablon într-o funcție nouă, de exemplu, numită my_thecat (). Desigur, nu uitați să adăugați codul corespunzător în fișierul functions.php înainte de a înlocui:

funcția my_thecat () (post global $; foreach ((get_the_category ($ post -> ID)) ca categoria $) (echo "cat_ID)." "title =" ". $ categorie -> cat_name." ">". $ categorie -> nume_pisica. ";";))

funcția my_thecat () (post global $; foreach ((get_the_category ($ post-> ID)) ca $ categorie) (echo "cat_ID)." "title =" ". $ categorie-> cat_name." ">". $ categorie-> nume_pisica. ";";))

L-am testat, totul merge. Rămâne o singură întrebare - cât de utile și extrem de necesare sunt toate acestea. Dacă aveți un blog cu un design permanent pe care doriți să îl faceți cel mai bun, atunci vă puteți lua câteva minute și face modificările corespunzătoare. Dacă aveți o mulțime de astfel de bloguri, cred că manipularea cu titlul nu va aduce beneficii seo speciale în ceea ce privește, este mai ușor să cumpărați link-uri în Rotapost către toate aceste proiecte - apropo, experimentul de ridicare a TCI. în sistem a fost finalizată cu succes și pozitiv, iar în curând va exista un raport despre acest lucru.

Afișarea categoriilor de postări personalizate

Comentariile sugerează că exemplele de mai sus nu funcționează pentru tipurile de postări personalizate (personalizate). Nu am întâlnit această sarcină, așa că vă pot sfătui doar să căutați soluția pe google în blogurile în limba engleză folosind cheia de categorie de afișare tip postare personalizată wordpress sau să folosiți indicația utilizatorului Stinker (din comentarii). În locul în care sunt afișate categoriile, trebuie doar să lipiți codul:

Unde categoria_video este taxonomia post personalizată. Și acum mai detaliat de unde și ce. De exemplu avem:

// Tip de înregistrare Video if (! function_exists ("video_cp")) (function video_cp () ($ labels = array ("nume" => _x ("Video", "Post Type General Name", "video"), "singular_name" => _x ("Video", "Post Type Singular Name", "video"), "menu_name" => __ ("Video", "video"), "parent_item_colon" => __ ("Parinte:", "video"), "all_items" => __ ( „Toate videoclipurile”, "video"), "view_item" => __ ("Vizualizare", "video"), "add_new_item" => __ ( „Adăugați un videoclip nou”, "video"), "add_new" => __ ("Adăugați videoclip", "video"), "edit_item" => __ ( "Editează videoclipul", "video"), "update_item" => __ ("Actualizează videoclipul", "video"), "search_items" => __ ("Găsiți videoclipul", "videoclipul"), "not_found" => __ ("Nu a fost găsit "," videoclip ")," not_found_in_trash "=> __ ( „Nu a fost găsit în cărucior”, „video”),); $ args = matrice ("labels" => $ labels, "supports" => array ("titlu", "editor", "extras",), "taxonomii" => matrice ("categoria_video"), // categoria pe care o vom crea mai jos (alias taxonomie)"public" => true, "menu_position" => 5, "menu_icon" => "dashicons-id-alt",); register_post_type ("video", $ args); ) add_action ("init", "video_cp", 0); // inițializează) dacă (! function_exists ("categoria_video")) ( // Categorii pentru posturi vacante funcția categoria_video () ($ labels = matrice ("nume" => _x ( „Categorii video”, „Nume general al taxonomiei”, „categoria_video”), „nume_singular” => _x ( „Categoria video”, „Taxonomie Singular Name”, „categoria_video”), „menu_name” => __ („Categorii”, „categoria_video”), „all_items” => __ („Categorii”, „categoria_video”), „parent_item” => __ ( „Videoclipuri din categoria părinte”, „categoria_video”), „parent_item_colon” ​​=> __ ( „Categoria video părinte:”, „categoria_video”), „new_item_name” => __ ( "Categorie noua", „categoria_video”), „add_new_item” => __ ( „Adăugați o nouă categorie”, "categoria_video"), "edit_item" => __ ( „Editați categoria”, "categoria_video"), "update_item" => __ ( „Actualizați categoria”, "categoria_video"), "search_items" => __ ("Găsiți", "categoria_video"), "add_or_remove_items" => __ ( „Adăugați sau eliminați categoria”, "categoria_video"), "choose_from_most_used" => __ ( „Căutare populară”, "categoria_video"), "not_found" => __ ("Negăsit", "categoria_video"),); $ args = matrice ("etichete" => $ etichete, "ierarhic" => adevărat, "public" => adevărat,); register_taxonomy ("categoria_video", matrice ("video"), $ args); ) add_action ("init", "categoria_video", 0); // inițializează }

// Tip postare video dacă (! Function_exists ("video_cp")) (funcție video_cp () ($ labels = array ("nume" => _x ("Video", "Post Type General Name", "video"), " singular_name "=> _x (" Video "," Tip de postare Singular Name "," video ")," menu_name "=> __ (" Video "," video ")," parent_item_colon "=> __ (" Părinte: ", "video"), "all_items" => __ ("Toate videoclipurile", "video"), "view_item" => __ ("Vizualizare", "video"), "add_new_item" => __ ("Adăugați un videoclip nou" , "video"), "add_new" => __ ("Adăugați videoclip", "video"), "edit_item" => __ ("Editați videoclipul", "videoclipul"), "update_item" => __ ("Actualizați videoclipul "," video ")," search_items "=> __ (" Găsiți videoclip "," videoclip ")," not_found "=> __ (" Nu a fost găsit "," videoclip ")," not_found_in_trash "=> __ (" Nu găsit în coș "," video "),); $ args = matrice (" etichete "=> $ etichete", acceptă "=> matrice (" titlu "," editor "," extras ",)," taxonomii "= > matrice ("categoria_video"), // categoria pe care o vom crea mai jos (alias taxonomie) "public" => true, "menu_position" => 5, "menu_icon" => "dashicons-id-alt",); register_post_type ("video", $ args); ) add_action ("init", "video_cp", 0); // initialize) if (! function_exists ("categoria_video")) (// Categoriile pentru posturi vacante function categoria_video () ($ labels = array ("name" => _x ("Categorii video", "Taxonomie General Name", "categoria_video") ")," singular_name "=> _x (" Video Categorie "," Taxonomie Singular Name "," categoria_video ")," menu_name "=> __ (" Categorii "," categoria_video ")," all_items "=> __ (" Categorii "," categoria_video ")," parent_item "=> __ (" Videoclipuri din categoria părinte "," categoria_video ")," parent_item_colon "=> __ (" Videoclipuri din categoria părinte: "," categoria_video ")," new_item_name "=> __ ("Categorie nouă", "categoria_video"), "add_new_item" => __ ("Adăugați o nouă categorie", "categoria_video"), "edit_item" => __ ("Editați categoria", "categoria_video"), "update_item" => __ ("Actualizați categoria", "categoria_video"), "search_items" => __ ("Găsiți", "categoria_video"), "add_or_remove_items" => __ ("Adăugați sau eliminați categorie", "categoria_video"), " select_from_most_used "=> __ (" Căutați printre popular "," categoria_video ")," not_found "=> __ (" Negăsit "," categoria_video "),); $ args = matrice ("etichete" => $ etichete, "ierarhic" => adevărat, "public" => adevărat,); register_taxonomy ("categoria_video", matrice ("video"), $ args); ) add_action ("init", "categoria_video", 0); // inițializați)

Mulțumim utilizatorului Stinker pentru indiciu, s-ar putea să-l găsiți util.

P.S. Santinela. Într-unul dintre blogurile Runet, a fost găsită o selecție minunată de teme de portofoliu wordpress din 17 șabloane gratuite de înaltă calitate.

Strămoșii noștri îndepărtați au fost odată obligați să folosească corespondența porumbeilor și serviciile mesagerilor pentru a transmite mesaje pe distanțe lungi. Apoi a fost inventat telegraful primitiv, iar corespondența de hârtie a apărut cam în același timp. Și multă vreme a fost necesar să se trimită telegrame sau cărți poștale de felicitare în avans. Dar toate aceste arhaisme au rămas în trecutul îndepărtat. Acum puteți trimite o felicitare vocală de ziua de naștere pe telefon oricărei persoane apropiate și dragi, în orice moment, în doar câteva minute!

Felicitari de ziua de nastere cu voce - cel mai bun cadou pentru prieteni si cei dragi

Dimineața de vacanță ar trebui să înceapă cu felicitări și cadouri! Vrei să-i faci pe plac persoanei dragi cu o surpriză cool, dar nu știi cum să o faci? Dacă vocea nu este inclusă în lista meritelor și talentelor tale, atunci este mai bine să nu cânți dimineața devreme în tubul „Happy bizdeyo tu uuuu”. Puteți comanda felicitări de ziua de naștere de la noi prin telefon. Alege un salut rece de la Putin cu Yotafon și Lada Kalina cadou, un miting comic de la curajosul Minister al Situațiilor de Urgență, felicitări personale personale de la șocantul Jirinovski, o cântare georgiană incendiară, o parodie, un cântec plin de suflet. Avem felicitări sonore de ziua de naștere pe telefonul tău pentru copii și adulți pentru toate gusturile!

Beneficiile felicitărilor de ziua de naștere Audi pe telefon

Nu este întotdeauna posibil să-l mulțumim pe ziua de naștere chiar de dimineață cu artificii festive, dulciuri, șampanie și cadouri. Dacă prietenul sau persoana iubită este foarte departe, atunci te poți limita la un banal telefon de dimineață. Crezi și tu că este foarte plictisitor și de modă veche? Atunci folosește posibilitățile noilor tehnologii - comandă felicitări de la mulți ani pe telefon și oferă o dispoziție minunată! O astfel de glumă sau un cadou muzical va fi cu siguranță pe placul zilei de naștere. Va fi plăcut surprins de surpriza ta neobișnuită!

Alege cele mai bune felicitări vocale tematice de la mulți ani

Serviciul nostru de carduri vocale, felicitări prin SMS și farse telefonice are o colecție de aur de glume, glume și compoziții muzicale. Puteți alege orice felicitări de ziua de naștere. site-ul a pregătit cadouri sonore pentru frații și surorile dumneavoastră, părinți, prieteni, persoana iubită, angajați și vecini. Toate felicitările de ziua de naștere sunt cool și amuzante. Vrei să-i mulțumești pe ziua de naștere cu o cântare georgiană incendiară, o parodie a celebrului spărgător Nikolai Baskov sau o melodie plină de suflet a lui Lev Leshchenko? Avem orice felicitări de ziua de naștere cu un apel telefonic!

  • Felicitarile vocale de ziua de nastere dupa nume de la A la Z vor fi o surpriza placuta de felicitare pentru persoana care zice ziua de nastere. Un astfel de salut muzical sau plin de umor este perceput ca fiind pregatit personal pentru el!
  • Cărți muzicale pentru semnul zodiacal vor încânta un fan ușor superstițios al horoscopului și îi vor aduce noroc pentru anul următor.
  • Felicitarile vocale la multi ani pentru o femeie vor fi un cadou minunat pentru mame, bunici, profesori sau prietene.
  • Cărțile poștale pentru cei dragi, amuzante, de la vedete vă vor ajuta să spuneți despre sentimentele tale, să te înveselească și să te pună într-o dispoziție pozitivă.
  • Felicitarile tematice pentru o sora, iubita, iubitul iubit, pentru o bunica sau pentru un copil iti vor permite sa alegi cel mai potrivit cadou individual.
  • Salutările vocale de la mulți ani pentru un bărbat vor fi o surpriză minunată pentru o aniversare, vor încânta un vechi prieten bun sau un prieten bun.

Felicitarile noastre de ziua de nastere prin SMS contin urari bune si sincere. Îți este greu să găsești cuvintele potrivite pentru a-ți exprima dragostea și recunoștința unei persoane dragi, pentru a-i mulțumi pentru mulți ani de prietenie puternică? Alegeți felicitări de ziua de naștere gata făcute pentru un bărbat sau o femeie, trimiteți o felicitare vocală și nu vă faceți griji pentru nimic!

Oferă-le celor dragi căldură, grijă și emoții pozitive!

Astăzi scopul nostru este să creăm o structură ierarhică a categoriilor. Este important pentru noi ca este convenabil sa stocam categorii si ca este usor sa le afisam acolo unde avem nevoie de ele.

Uneori, simplul pare complicat, de aceea voi așeza câteva fragmente de cod care sper să vă fie utile pentru a implementa categorii php sub formă de arbore.

Deci, structura ar trebui să fie formată din id-ul categoriei (id), numele categoriei (nume) și, bineînțeles, id-ul categoriei părinte (parent_id). În MySQL arată astfel:

CREATE TABLE IF NOT EXIST `category` (` id` int (10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL,` parent_id` int (11) NOT NULL, PRIMARY KEY (`id`)) MOTOR = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 0;

Structura tabelului minimă și ușor de înțeles pentru stocarea categoriilor.

INSERT INTO `category` (` id`, `name`,` parent_id`) VALORI (1, „Telefoane și tablete”, „0”), (2, „Mașini”, „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");

Unde parent_id = 0, această categorie nu are nicio categorie părinte.

Totul este clar și simplu aici. Acum să fim prezenți la ieșirea listei de categorii. Dar pentru afișarea corectă a listei, trebuie mai întâi să obținem întreaga listă de categorii php și abia apoi, folosind recursiunea, să ne formăm arborele. Următoarea funcție este pentru obținerea acestei liste:

Funcția get_cat () (// interogare baza de date $ sql = "SELECT * FROM categorie"; $ rezultat = mysql_query ($ sql); if (! $ Result) (return NULL;) $ arr_cat = array (); if ( mysql_num_rows () $ rezultat)! = 0) (// În buclă, formați o matrice pentru ($ 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; } }

// obține o matrice a directorului $ result = get_cat ();

Acum avem nevoie de o funcție cu recursivitate

Funcția view_cat ($ arr, $ parent_id = 0) (// Condiții pentru ieșirea din recursivitate dacă (gol ($ arr [$ parent_id])) (return;) echo "

    "; // se repetă peste matrice într-o buclă și se afișează pentru ($ i = 0; $ i< count($arr[$parent_id]);$i++) { echo "
  • ". $ arr [$ parent_id] [$ i] [" nume "]." "; // recursivitate - verificați dacă există categorii secundare view_cat ($ arr, $ arr [$ parent_id] [$ i] [" id "]); ecou"
  • ";) ecou"
"; }

Acum tot ce rămâne este să afișați directorul pe ecran folosind o funcție recursivă

View_cat ($ rezultat);

Și, în general, asta e tot. Astfel putem obține un arbore complet de categorii cu subcategorii infinite.

Obține datele pentru categoria specificată.

Dacă treceți un obiect care conține informații despre categorie la parametrul categorie $, aceste date vor fi stocate în cache.

Dacă treceți ID-ul categoriei la parametrul categorie $, datele categoriei vor fi preluate din baza de date sau din cache, dacă există.

Observați funcția get_term () care este identic cu get_category. Cu ajutorul acestuia, puteți obține date dintr-o altă taxonomie decât categorie.

✈ 1 dată = 0,000443s = repede| 50.000 de ori = 0,92s = foarte rapid| PHP 7.0.5, WP 4.5.1

Nu există cârlige.

Utilizare

$ cat = get_category ($ categorie, $ ieșire, $ filtru); categoria $ (număr) (obligatoriu) ID-ul categoriei sau obiectul care conține date despre categorie.
Implicit: nu$ ieșire (constant)

Ce fel de matrice să returneze date:

  • OBIECTUL - obiect;
  • ARRAY_A - tablou asociativ;
  • ARRAY_N este o matrice indexată.

Implicit: OBJECT

$ filtru (linia) Filtru (ce fel de filtru nu am inteles sigur).
Implicit: „raw”

Exemple de

#unu. Să afișăm datele categoriei pe pagina căreia ne aflăm (actuală):

$ thisCat = get_category (get_query_var ("pisica")); print_r ($ thisCat);

Ca urmare, vom vedea ceva de genul acesta:

Obiect StdClass (=> 85 => Nume categorie => nume-categorie => 0 => 85 => categorie => 70 => 0 => 85 => 0 => => Nume categorie => nume-categorie = > 70)

Top articole similare