În părțile anterioare ale acestei serii, am lucrat prin diferitele tabele din baza de date WordPress și am examinat ce date stochează, modul în care interacționează între ele și ce funcții le utilizați pentru a interacționa cu ele.
În această ultimă parte, voi continua să mă uit la Multisite. Baza de date pentru o instalare WordPress Multisite va conține tabele suplimentare: un set de tabele pentru fiecare site care rulează în rețea și câteva tabele suplimentare pentru rețeaua în sine, precum și tabelele pentru site-ul central.
Aceasta înseamnă că există trei elemente pentru înțelegerea modului în care baza de date funcționează în Multisite:
Voi începe să vă uitați la modul în care WordPress stochează datele pentru site-ul de bază.
Pentru site-ul de bază într-o rețea, WordPress utilizează aceleași 11 tabele de baze de date ca într-o singură instalare a site-ului:
wp_posts
wp_postmeta
wp_comments
wp_commentmeta
wp_users
wp_usermeta
wp_links
wp_term_relationships
wp_term_taxonomy
wp_terms
wp_options
Acestea vor conține date referitoare la site-ul principal. Două dintre acestea vor conține, de asemenea, date referitoare la restul rețelei. Acestea sunt:
wp_users
wp_usermeta
Celelalte nouă tabele funcționează în același mod ca și pentru un singur site - stochează date despre conținutul principal al site-ului. Cu toate acestea, ultimele două tabele vor stoca, de asemenea, date de utilizator relevante pentru întreaga rețea, precum și date de utilizator care sunt utilizate numai de site-ul central. Voi examina acest lucru într-un moment.
Pe lângă stocarea datelor de utilizator pentru întreaga rețea în două tabele de bază, WordPress creează, de asemenea, tabele suplimentare într-o instalare multisite care dețin date referitoare la rețea și site-urile sale.
Acestea sunt:
wp_blogs
wp_blog_versions
wp_registration_log
wp_signups
wp_site
wp_sitemeta
wp_sitecategories
(Opțional)WordPress folosește aceste șapte (sau șase) tabele plus cele două tabele de utilizatori pentru a stoca toate datele despre rețeaua Multisite. Iată ce stochează fiecare dintre ele:
Masa | Date | notițe |
---|---|---|
wp_blogs | Acest câmp stochează detaliile fiecărui site din rețea, deci are doar o singură înregistrare pentru fiecare site. | Domeniile includ blog_id , domeniu , înregistrat (datele pe care a fost creat site - ul) și Ultima actualizare (din nou, o dată). |
wp_blog_versions | Versiunea curentă a bazei de date pentru fiecare site, actualizată atunci când actualizați rețeaua. | Trei domenii: blog_id , db_version și Ultima actualizare |
wp_registration_log | Utilizatorul de admin creat atunci când fiecare site este înregistrat | Pentru fiecare site (identificat prin blog_id ), tabela stochează numele de utilizator pentru administrator, adresa de e-mail și data la care au fost înregistrați. |
wp_signups | Stochează date pe site-uri care au fost înregistrate, dar nu au fost activate | Câmpurile includ un mod unic signup_id pentru fiecare înregistrare, domeniul înregistrat pentru, titlul, numele de utilizator și adresa de e-mail. Odată ce un site este activat, această înregistrare este ștearsă și este creată o înregistrare în wp_blogs . |
wp_site | Stochează adresa URL pentru site-ul principal | Acest tabel are o singură înregistrare cu trei câmpuri: id al site-ului principal (care va fi 1 ), domeniul său și calea (în mod normal / ) |
wp_sitemeta | Stochează metadatele pentru rețea | Acest tabel este echivalent cu wp_options pentru întreaga rețea. Conține toate metadatele referitoare la setările de rețea, plus cantități mai mici de metadate pentru site-urile individuale. Are patru câmpuri: o unică meta_id , SITE_ID (la care se face legătura wp_blogs ), meta_key și meta_value . |
wp_sitecategories | Tabela opțională a fost creată numai dacă sunt activate termeni globali pentru un site. | Activarea termenilor globali vă permite să utilizați termeni pe mai multe site-uri din rețea. Tabelul (dacă este creat) va avea patru câmpuri: cat_ID , CAT_NAME , category_nicename și Ultima actualizare . Rețineți că aceste tabele stochează termeni, nu doar categorii, în ciuda numelor de câmpuri. |
wp_users | Datele despre toți utilizatorii sunt stocate aici mai degrabă decât pentru fiecare site, deoarece utilizatorii individuali pot avea acces la mai multe site-uri din rețea. | Într - o instalare Multiste WordPress creează două câmpuri suplimentare în wp_users tabel: spam și șterse, ambele fiind valori booleene care nu corespund NU . |
wp_usermeta | wp_usermeta tabelele stochează toate metadatele pentru toți utilizatorii site-ului | Tabelul este utilizat în același mod ca pentru o singură instalare a site-ului. |
Cele mai multe dintre aceste tabele sunt legate de wp_blogs
tabel prin blog_ID
, deoarece toate datele necesare pentru site-urile din rețea vor trebui să fie legate de înregistrarea de bază a site-ului. Excepțiile sunt:
wp_sitecategories
, care se leagă de postări și de alte tipuri de conținutwp_signups
, deoarece acestea nu sunt încă înregistratewp_usermeta
, care are o legătură indirectă wp_blogs
prin intermediul wp_users
Pentru mai multe detalii despre fiecare dintre aceste tabele și câmpurile acestora, consultați pagina Codex din baza de date.
Modul în care WordPress stochează datele pentru fiecare dintre site-urile din rețea este destul de simplu: creează mai multe copii ale fiecărui tabel de baze de date, câte unul pentru fiecare site. Cu toate acestea, nu se creează copii suplimentare wp_users
și wp_usermeta
deoarece toate acestea sunt stocate în tabelul principal.
Pentru a face diferența între tabele pentru fiecare site, WordPress adaugă ID-ul site-ului la numele tabelului, de exemplu pentru site-ul 2, wp_posts
devine wp_2_posts
.
Fiecare site va avea următoarele tabele:
wp_xx_posts
wp_xx_postmeta
wp_xx_comments
wp_xx_commentmeta
wp_xx_links
wp_xx_term_relationships
wp_xx_term_taxonomy
wp_xx_terms
wp_xx_options
xx
de mai sus vor fi înlocuite cu ID-ul site-ului numeric. Toate aceste tabele stochează datele în același mod pentru fiecare site ca și în cazul în care site-ul ar fi o singură instalare a site-ului.
Dacă manipulați, preluați sau mutați date dintr-o instalare WordPress Multisite, este important să înțelegeți modul în care Multisite stochează date diferit de o instalare Multisite.
După cum am arătat, există trei elemente principale: tabelele utilizate pentru site-ul de bază; tabele utilizate pentru stocarea bazei de date despre rețea în ansamblu; și tabele create pentru fiecare site nou. Structura acestora este similară cu o singură instalare a site-ului atâta timp cât vă amintiți că cele două tabele care stochează date despre utilizatori nu sunt duplicate pentru fiecare site.