Titluri și categorii WordPress, funcție wp_list_categories. Clasa PHP pentru lucru convenabil și sigur cu Funcția MySQL wp_list_categories pentru categoria WordPress

) Ți-am arătat un exemplu de utilizare expresii obisnuite pentru a găsi piese specifice cod sursa pagini. Acum vom învăța cum să le scriem noi înșine. Această abilitate vă va ajuta să scrieți, să ștergeți textul din fragmentele inutile, să căutați părțile necesare în volume mari de text și așa mai departe.

Data publicării: 20.10.2013

Continuăm să scriem un analizator de statistici pentru vizitatori pe internet live. Dacă cineva tocmai ni s-a alăturat, atunci vă sfătuiesc să începeți, de unde ne-am conectat la serviciu fără autorizație. Acolo am învățat cum să primim conținut de la pagini deschise, care nu sunt protejate cu parolă. Dar, de fapt, accesul la majoritatea site-urilor este închis, așa că beneficiază foarte puțin de un script care nu știe cum să se autentifice, după cum înțelegeți. Dar nu vă faceți griji, vom rezolva totul acum.

Data publicării: 08.10.2013

Bună ziua, cititori! Este timpul să exersăm puțin. Ai deja suficiente cunoștințe pentru a începe să scrii scripturi utile care vă va ușura munca. Unul dintre acestea ar putea fi un parser. Am descris în detaliu ce este acesta în al meu, așa că dacă nu știți, vă sfătuiesc să îl citiți. Pe scurt, esența analizorului se rezumă la căutare și izolare informatie necesara dintr-o bucată mare de text. În cazul internetului, aceasta implică cel mai adesea extragerea datelor necesare din paginile site-ului. În cazul nostru va fi Liveinternet. Deci să mergem!

Data publicării: 03/10/2013

Acest articol va vorbi despre asta Unealtă puternică precum cURL, precum și biblioteca pentru php care oferă acces la acest instrument - libcurl. Pentru ce sunt toate acestea? Pentru a comunica cu serverul utilizând protocoale de transfer de date, de exemplu, http sau ftp. Restul protocoalelor nu sunt deosebit de interesante pentru noi; dacă cineva dorește să aprofundeze acest subiect, va trebui să dezgroape resurse în limba engleză, iar acest articol va conține elementele de bază și exemple de utilizare.

Data publicării: 24.11.2012

Data publicării: 05.11.2012

Și acum va exista o lecție destul de mare, dar nu complicată, despre lucrul cu fișiere în PHP. În primul rând, pentru ce sunt fișierele? La urma urmei, puteți stoca totul în baza de date Date MySQL sau PostgreSQL sau oricare altul. Dar uneori există sarcini atunci când folosirea unei baze de date, cu toată prelucrarea și preocuparea pentru securitatea conexiunii, nu este recomandabilă. De exemplu, trebuie să facem un contor obișnuit, dar înainte de aceasta nu am folosit o bază de date în proiect. Deci, de dragul unui numărător mic, ar trebui să creăm o bază de date și să stocăm doar câteva linii în ea? Este mult mai ușor să folosești fișiere aici. În plus, uneori găzduirea nu acceptă deloc baze de date, atunci fișierele sunt în general singura opțiune.

Data publicării: 04.11.2012

Ori de câte ori le permiteți utilizatorilor să trimită text pe site-ul dvs. (nume sau orice altă informație), trebuie să aveți grijă. Trebuie să vă asigurați că nu aveți nicio găuri în securitatea site-ului dvs. pe care atacatorii le pot folosi pentru a pătrunde în site-ul dvs. Dacă tot trebuie să primiți date de la utilizator, atunci asigurați-vă că utilizați funcția htmlentities pentru a preveni rularea codului HTML sau a scripturilor care pot fi dăunătoare și periculoase!

Data publicării: 04.11.2012

În această lecție ne vom uita la tehnicile de transmitere a datelor între formulare și pagini. Astfel de metode sunt POST și GET. Vom vorbi despre fiecare separat și mai detaliat. În general, acest lucru este necesar pentru comunicarea între forme. De exemplu, completăm unele câmpuri pe o pagină și trebuie să le transferăm pe o altă pagină pentru procesare.

Data publicării: 03.11.2012

De fapt, după cum probabil ați ghicit, bucla do while este puțin a versiune modificată buclă while, ceea ce am făcut în lecțiile anterioare. Dacă vă amintiți cum funcționează o buclă while obișnuită, vă va fi mai ușor să înțelegeți noua buclă. Să repetăm: corpul buclei while este executat dacă condiția este adevărată și nu este executat dacă nu este adevărată, dar poate să nu fie executat nici măcar o dată dacă condiția este falsă de la bun început. Cum se descurcă în timp ce lucrează?

Data publicării: 03.11.2012

Imaginați-vă că aveți o matrice asociativă pe care doriți să o iterați. PHP oferă o modalitate ușoară de a folosi fiecare element al unui tablou, la rândul său, folosind constructul Foreach.

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 lucrurile simple par complicate, motiv pentru care voi posta câteva fragmente de cod care sper să vă fie utile pentru implementarea categoriilor 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 NU 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 ;

Structură minimă și clară a tabelului 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");

În cazul în care valoarea parent_id=0, această categorie nu are o categorie părinte.

Totul aici este clar și simplu. Acum să trecem la afișarea listei de categorii. Dar pentru a afișa corect lista, trebuie mai întâi să obținem întreaga listă de categorii PHP și abia apoi să folosim recursiunea pentru a forma arborele nostru. Următoarea funcție este concepută pentru a obține această listă:

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ă formăm un tablou 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 tabloul de director $rezult = 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 if(empty($arr[$parent_id])) ( return; ) echo "

    "; // parcurge matrice și afișează-l pe ecran pentru ($i = 0; $i< count($arr[$parent_id]);$i++) { echo "
  • " .$arr[$parent_id][$i]["nume"]."; //recursiune - verificați dacă există categorii copii 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 de categorii complet cu subcategorii nesfârșite.

Pentru fiecare postare și intrare utilizator wordpress poate specifica una sau mai multe titluri (categorii). Această caracteristică vă permite să grupați postări care au semnificație similară și să ofere vizitatorilor posibilitatea de a citi și vizualiza numai acele secțiuni care le plac. De exemplu, când mi-am creat blogul principal, Tod’s Blog, aveam de gând să scriu despre toate nuanțele internetului - de la design la programare. Să presupunem că o persoană a venit de la un motor de căutare la un articol despre Wordpress și a vrut să citească și mai multe despre sistem - ar trebui să scotoci prin arhive, să refolosească căutarea sau să caute toate postările la rând. Desigur, toate acestea ar fi putut fi evitate mergând la o categorie specială numită wordpress. Sau, de exemplu, pentru cei care sunt interesați doar de design, o secțiune de blog ar putea fi de interes.

Dacă te uiți cu atenție la antetul blogului, poți vedea un fel de meniu în care categoriile WordPress acționează ca secțiuni ale proiectului. În ceea ce mă privește, aceasta este o modalitate destul de convenabilă și vizuală de a separa subiectele intrărilor.

În centrul paginii veți vedea un formular pentru adăugarea unei noi categorii. Aici trebuie să specificați titlul (numele), eticheta (parte a link-ului URL pentru CNC), categoria părinte (dacă există una) și puteți, de asemenea, să setați scurta descriere. Categoria părinte vă permite să creați secțiuni în WordPress cu mai multe niveluri de imbricare - de exemplu, pentru categoria „WordPress” de pe un blog IT puteți adăuga aceleași șabloane, plugin-uri etc.

În partea dreaptă a paginii Categorii sunt afișate toate categoriile WordPress, cu posibilitatea de a edita sau șterge. Pentru a efectua acțiuni, trebuie doar să mutați cursorul mouse-ului peste numele unei anumite categorii, după care veți vedea un mic meniu pop-up.

Când editați, veți vedea unul dintre blocurile de informații unde puteți selecta una sau mai multe categorii pentru articol. Doar bifați casetele de lângă numele dorite.

Aici puteți adăuga noi categorii făcând clic pe linkul corespunzător. Singurul dezavantaj al acestui mecanism este că la creare, puteți specifica doar numele și categoria părinte, în timp ce pentru a seta câmpul de etichetă va trebui să mergeți la secțiunea „Categorii” și să editați informațiile acolo.

În plus, puteți edita categorii pentru postările de blog prin lista lor din meniul Postări – Editare. Acolo, când treceți cu mouse-ul peste o anumită publicație, veți vedea un link „ Editare rapidă" Faceți clic pe el și vedeți formularul pentru editare:

Aici puteți schimba categorii, etichete și tot Informații suplimentare conform articolului. Lucrul este foarte comod + funcționează fără a reîncărca pagina.

Funcția wp_list_categories pentru categoria wordpress

În mod tradițional, iau în considerare nu numai problema lucrului cu anumite elemente ale sistemului, ci și dau funcții speciale pentru șabloane. La fel cum am vorbit. Deci, pentru a afișa o listă de categorii cu link-uri către acestea, se folosește wp_list_categories. Are o serie de argumente:

  • show_option_all – afișează un link către toate categoriile dacă ați selectat o listă ca stil de afișare.
  • orderby – sortarea categoriilor după ID, nume (nume), etichetă (slug), număr de postări (număr).
  • ordine – ordine de sortare (ASC – crescător, DESC – descrescător).
  • show_last_updated – arată data ultimei actualizări.
  • stil – stil de design: listă, împărțire prin
    (nici unul).
  • show_count – afișează numărul de postări din categorie.
  • hide_empty – ascunde categoriile goale fără postări.
  • use_desc_for_title – utilizați o descriere pentru atributul titlu din link.
  • child_of – afișează numai categorii pentru categoria părinte dată.
  • feed – afișează un link către feedul pentru categorii.
  • feed_type – tip de feed.
  • feed_image – imagine pentru pictograma rss.
  • exclude – exclude categorii din listă, iar parametrul child_of este dezactivat automat.
  • exclude_tree – exclude o întreagă ramură de categorie.
  • include este parametrul invers care include numai categoriile WordPress specificate în listă.
  • ierarhic – parametru pentru afișarea subcategoriilor.
  • title_li – titlul listei de categorii.
  • număr – numărul de categorii de afișat (dacă sunt prea multe).
  • echo – afișează categorii, implicit la True.
  • adâncime – specifică numărul de niveluri pentru subcategorii de afișat.

În cele din urmă, voi da o serie de exemple de utilizare a wp_list_categories. În primul rând, opțiunea din antetul acestui blog.

Aici este setat să afișeze categorii ascunse, să excludă categorii din listă, o linie goală pentru titlul blocului, sortare după numărul de articole și în ordine descrescătoare (adică am cele mai multe articole în secțiune). Ultimul argument nu înlocuiește descrierea categoriei în titlul link-ului.

Ei bine, și încă câteva situații simple. Utilizarea excluderilor și includerilor de categorii.

Dacă aveți ceva de adăugat despre titlurile și categoriile WordPress, scrieți în comentarii.

Actualizare: s-ar putea să găsiți acest mic hack util și pentru . În WordPress, în mod implicit, textul titlului este definit, ceva de genul „vezi toate intrările din categoria ....”, poți în schimb să părăsești titlul categoriei - citește articolul de la linkul de mai sus.

Returnează o serie de obiecte care conțin informații despre categorii.

Parametrii trecuți acestei funcție sunt foarte asemănători cu parametrii trecuți funcției wp_list_categories() și pot fi trecuți fie ca matrice, fie ca șir de interogare: type=post&order=DESC .

✈ 1 dată = 0,005625s = foarte lent | 50000 ori = 11,98s = lent | PHP 7.1.11, WP 4.9.5

Folosind $categories = get_categories($args); Model de utilizare $categories = get_categories(array("taxonomy" => "categorie", "type" => "post", "child_of" => 0, "parent" => "", "orderby" => "nume" , "order" => "ASC", "hide_empty" => 1, "ierarhic" => 1, "exclude" => "", "include" => "", "number" => 0, "pad_counts" => fals, // lista plina Pentru parametri, consultați descrierea funcției http://wp-kama.ru/function/get_terms)); if($categorii)( foreach($categorii ca $cat)( // Date în obiectul $cat // $cat->term_id // $cat->nume (Rubrica 1) // $cat->slug (rubrika - 1) // $cat->term_group (0) // $cat->term_taxonomy_id (4) // $cat->taxonomie (categorie) // $cat->descriere (Text de descriere) // $cat-> parent (0) // $cat->count (14) // $cat->object_id (2743) // $cat->cat_ID (4) // $cat->category_count (14) // $cat-> categorie_description (Text de descriere) // $cat->cat_name (Rubrica 1) // $cat->category_nicename (rubrika-1) // $cat->category_parent (0) ) ) taxonomie (linia) Numele taxonomiei care urmează să fie procesată. Adăugat începând cu versiunea 3.0.
Implicit: „categorie” tip (linia)
  • post - categorii pentru postări (implicit);
  • link - secțiuni link.
    Implicit: „post”
copil_al (linia) Obțineți categoriile de copii (inclusiv toate nivelurile de imbricare) ale categoriei specificate. Parametrul specifică ID-ul categoriei părinte (categoria ale cărei categorii imbricate doriți să le afișați). mamă (număr) Obține categorii a căror categorie părinte este egală cu ID-ul specificat în parametru. Diferența față de child_of este că va fi afișat un nivel de imbricare.
Mod implicit: "" comanda prin (linia)

Sortarea datelor primite după anumite criterii. De exemplu, după numărul de postări din fiecare categorie sau după numele categoriilor. Următoarele criterii sunt disponibile:

  • ID - sortați după ID;
  • nume - sortați după nume (implicit);
  • slug - sortare după alt. nume (limc);
  • numără - după numărul de înscrieri din categorie;
  • termen_grup - după grup.

Implicit: „nume”

Ordin (linia)

Direcția de sortare specificată în parametrul „orderby”:

  • ASC - în ordine, de la cel mai mic la cel mai mare (1, 2, 3; a, b, c);
  • DESC - în ordine inversă, de la cel mai mare la cel mai mic (3, 2, 1; c, b, a).

Implicit: „ASC”

Hide_empty (logic)

Dacă se primesc sau nu categorii goale (fără intrări):

  • 1 (adevărat) - nu primiți cele goale,
  • 0 (fals) - primiți cele goale.

Implicit: adevărat

Ierarhic (logic) Dacă este setat la true , rezultatul va include categorii copii goale ale căror categorii copii au intrări (nevide).
Implicit: adevărat exclude (șir/matrice) Excludeți orice categorii din listă. Trebuie să specificați ID-uri de categorie separate prin virgule sau într-o matrice. Dacă acest parametru este specificat, parametrul child_of va fi suprascris.
Mod implicit: "" include (șir/matrice) Listați numai categoriile specificate. Trebuie să specificați ID-uri de categorie separate prin virgule sau într-o matrice.
Mod implicit: "" număr (număr) Limită. Numărul de categorii care vor fi preluate. În mod implicit, nu există restricții - toate categoriile vor fi preluate. pad_counts (logic) Dacă treceți adevărat, atunci numărul care arată numărul de postări din categoriile părinte va fi suma postărilor sale și a postărilor din categoriile secundare.
Implicit: false

Exemple #1 Listă drop-down

Pentru a crea o listă derulantă de categorii, putem folosi o altă funcție specială în acest scop, wp_dropdown_categories() :

Wp_dropdown_categories(array("hide_empty" => 0, "name" => "category_parent", "orderby" => "nume", "selected" => $category->parent, "hierarchical" => true, "show_option_none" => __("Niciuna")));

cu toate acestea, cu această abordare vom pierde o oarecare flexibilitate în configurarea listei, deoarece vom primi o listă complet formată.

Prin urmare, în unele cazuri, va fi mai logic să creați o listă derulantă folosind funcția get_categories(). Iată un exemplu (presupunând că trebuie să afișăm subcategorii (copii) din categoria 10):

#2 Lista categoriilor și descrierile acestora

Acest exemplu ne va arăta cum putem afișa o listă de link-uri către categorii, unde imediat după fiecare link va apărea o descriere a categoriei (specificată la crearea/editarea unei categorii):

Note
  • Vezi: get_terms() Tipul de argumente care pot fi schimbate.
Lista modificărilor
Din versiunea 2.1.0 Introdus.
Obțineți codul categoriilor: wp-includes/category.php WP 5.3.2
Acțiune