Wordpress-ті түсіну және онда мәліметтермен жұмыс. Бірінші бөлім. Кіріспе


Бұл мақала WordPress-тегі мәліметтер туралы мақалалар сериясындағы Rachel McCollin бірінші мақаласы. Мақалада Wordpress-тегі контенттер типтері және олардың өзара байланыстары туралы қарастырылған. Мақала біріншіден wordpress-те жаңадан жұмыс бастағандарға пайдалы болады, бірақ профессионалдар да өздеріне пайдалы нәрселер таба алады.

Worpress арқылы жасалған сайт үш бөлімнен тұрады:
  • Worpress-тің орнатылуы
  • wp-content папкасының құрамы: плагиндар, темалар, жүктелген файлдар
  • Контент сақталатын мәліметтер қоры

Worpdpress пайдаланушыларының көпшілігі мәліметтер қорымен тікелей ешқашан жұмыс жасамайды. Олар сайттарының жұмыс жасауы үшін мәліметтер қорының тынымсыз жұмыс істейтінін білмеуі де мүмкін. Wordpress кез-келген бетті көрсеткен кезде, ол мәліметтер қорына қосылады да, алдын ала автор енгізген контентті көрсетеді.

Бұл мақалалар сериясында Wordpress-тің мәліметтер қорымен жұмыс жасау жағы қарастырылады. Мақалалар сериясы тоғыз бөлімнен тұрады:
  1. Кіріспе (сіз қазір осы бөлімді оқып отырсыз)
  2. Мәліметтер арасындағы байланыстар
  3. Контенттер типтері
  4. Пайдаланушылар мәліметтері
  5. Метамәліметтер
  6. Таксономиялар, категориялар, белгілер және терминдер
  7. Таксономиялар VS метамәліметтер
  8. Баптаулар кестесі
  9. Wordpress Multisite мәліметтері

Бұл мақалада мәліметтер қорындағы кестелер және олардың контент типтерімен байланысы туралы айтылады. Контенттер типтері Wordpress-те мәліметтердің қалай және қайда сақталуын анықтайды.

Wordpress контент типтері

Wordpress мәліметтер қорында сақталатын мәліметтерді қарамас бұрын контент типтерін қарастырайық. Келесідей стандарты контент типтері бар:
  • Жазбалар (posts)
  • Беттер (pages)
  • Пайдаланушылық жазбалар типтері (custom post types)
  • Жүктелімдер (attachments)
  • Сілтемелер (links)
  • Меню элементтері (navigation menu items)

Бұл контент типтері үшін келесідей мәліметтер сақталады:
  • Категориялар (categories)
  • Белгілер (tags)
  • Пайдаланушылық таксономиялар (custom taxonomies and terms)
  • Метамәліметтер (post metadata)

Сонымен қатар, басқалай түрде сақталатын контент типтері бар:
  • Виджеттер (widgets)
  • Баптаулар (options)
  • Пайдаланушылар (users)
  • MU WordPress үшін сайттар
  • Кейбір темалар мен плагиндерді қосатын стандартты емес контент (hardcoded content)
  • Шеткі ресурстан алынған контент (third party content) (мысалы RSS)

WordPress мәліметтер қорының құрылымы

Wordpress бірнеше өзара байланысқан кестелерді пайдаланады. Олардың арасында «біреу көпшілікке» типті байланыстар орнатылған. Мысалы, бір бетке көптеген комментарийлер жазылуы мүмкін. Төменде көрсетілген диаграмма WordPress кодексінен алынған. Онда кестелер және олардың арасындағы байланыстар көрсетілген:
WordPress мәліметтер қорының құрылымы

Көптеген кестелер басқа бір немесе бірнеше кестемен бір баған арқылы байланысқан. Бұл баған әрбір мәлімет үшін қайталанбайтын идентификатор болады (мысалы post_id). Әрбір кесте үшін толығырақ:
КестеМәліметтерБасқа кестелермен байланыстары
wp_posts
Жазбалар, беттер, жүктемелер, редакциялар, пайдаланушылық жазбалар
wp_postmeta кестесімен post_id арқылы
wp_term_relationships кестесімен post_id арқылы
wp_postmeta
Беттер, жазбалар және т.б. метамәліметтері wp_posts кестесімен post_id арқылы
wp_comments
Пікірлерwp_posts кестесімен post_id арқылы
wp_commentmeta
Пікірлер метамәліметтеріwp_comments кестесімен comment_id арқылы
wp_term_relationships
Таксономиялар, жазбалар, беттер және т.б. арасындағы байланыстар.wp_posts кестесімен post_id арқылы
wp_term_taxonomy кестесімен term_taxonomy_id арқылы
wp_term_taxonomy
Таксономиялар (категориялар және белгілермен қоса)wp_term_relationships кестесімен term_taxonomy_id арқылы
wp_terms
Өзіңіздің категорияларыңыз, белгілер және пайдаланушылық таксономиялардың терминдері
wp_term_taxonomy кестесімен term_id арқылы
wp_links
Блогыңыздағы сілтемелер (қазір пайдаланылмайды)wp_term_relationships кестесімен link_id арқылы
wp_users
Пайдаланушыларwp_posts кестесімен post_author арқылы
wp_user_meta
Әрбір пайдаланушыға метамәліметтерwp_users кестесімен user_id арқылы
wp_options
Сайт баптаулары
(Админкада баптаулар бетінде және темалар/плагиндар баптаулар беттерінде орнатылады)
Жоқ

Кейбір жағдайларды айта кеткен жөн:
  • Мәліметтер қорының кестелері үнсіз келісім бойынша wp_ префиксынан басталады. Сіз оны орнату кезінде өзгерте аласыз.
  • wp_posts ең маңызды кесте. Көптеген мәліметтер осы кестеде сақталады.
  • Бір ғана кесте басқа кестелермен байланыспаған — wp_options кестесі. Бұл кестеде жазбалар мен пайдаланушыларға қатысы жоқ WordPress баптаулары және сайт мәліметтері сақталады
  • Таксномия туралы мәліметті сақтау үшін екі кесте пайдаланылады. Бұл туралы жеке мақала жазылады.
  • wp_users және wp_comments кестелеріндегі мәліметтер байланыспаған. WordPress баптауында, тек қана тіркелген пайдаланушылар пікір жаза алатын етіп көрсетуге болады. Бұған қарамастан wordpress пікірлер мен оны жазған пайдаланушы арасындағы байланысты сақтамайды.
  • WordPress MU қосымша кестелері бар. Олар бұл мақалада қарастырылмайыды.

Мәліметтер қоры кестелері мен контент арасындағы байланыс

WordPress-тегі мәліметтер типтері мен олар сақталатын кестелермен танысқан соң, екеуінің арасында сәйкестіктер келтіруге болады. Төменде келтірілген кестеде белгілі бір типті контентті сақтау үшін қандай кестелер қолданылатыны келтірілген.

Контент типіКесте
Жазбалар (posts)wp_posts
Беттер (pages)wp_posts
Жазбалардың пайдаланушылық типтері (custom post types)wp_posts
Жүктелімдер (attachments)wp_posts
Сілтемелер (links)wp_links
Меню элементтері (navigation menu items)wp_posts
Категориялар (categories)wp_terms
Белгілер (tags)wp_terms
Пайдаланушылық таксономиялар (custom taxonomies)wp_term_taxonomy
Пайдаланушылық таксономиялардың терминдері (custom terms)wp_terms
Метамәліметтер (post metadata)wp_post_meta
Виджеттер (widgets)wp_options
Баптаулар (options)wp_options
Пайдаланушылар (users)wp_users
Стандартты емес контент (hardcoded content)wp_posts (егер жазбаларға қосылған болса)
wp_options (егер виджеттерге қосылған болса)
Темалар/плагиндар файлдары
Шеттен алынған контент (third party content)wp_posts (егер жазбаларға қосылған болса)
wp_options (егер виджеттерге қосылған болса)
Темалар/плагиндар файлдары

Тізімде барлық кестелер пайдаланылмағандығын оңай аңғаруға болады. Өйткені, кейбір кестелер метамәліметтерді сақтау үшін пайдаланылады, ал кейбіреулері байланыстарды сақтау үшін пайдаланылады. Екі жағдай да келесі мақалада қарастырылады.

Қорытынды

Енді сіздер WordPress нені қайда сақтайтынын түсіндіңіздер деп үміттенемін. Тағы да толығырақ бұл тақырып келесі мақалаларда қарастырылады. Мысалы, келесі мақалада мәліметтер арасындағы байланыстар қарастырылады.

  • +3
9 пікір
onlasyn
Рахмет, CMS жазамын дегендерге өте пайдалы пост екен. бір сұрақ:
usermeta-da kestesindegi meta_value-da dannyi qalai saqtalady? mysaly keltirp korsete alasyn ba?
raimbek
Сұрақты онша түсінбедім. Сізді код жағы (php функциялар) немесе gui яғни плагиндер жағы (қосымша бағандар) қызықтырып тұр ма?

Кейін назар аударыңыз, бұл аударма (бірінші абзацта жазылған), сондықтан, кей сұрақтарға нақты жауап бере алмауым мүмкін ))
onlasyn
usermeta кестесінің meta_value ұяшығында не сақталады?
raimbek
Пайдаланушылар туралы мәліметтер ))
«Each user features information called the meta data and it is stored in wp_usermeta.»
Яғни, бұл баған (meta_value) «meta_key» бағанымен сәйкестікте жұмыс жасайды, онда пайдаланушы туралы кез-келген мәліметтер (аты, фамилия...) және қосымша баптаулар (comment_shortcuts) сақталады.
onlasyn
Түсінікті ғой юзер туралы мәлімет екені ), менің сұрағаным сал мәліметті қалай сақтайды?
сериалайздап па, жейсонмен кодтап па әлде үтір арқылы ма, соны сұраған едім негізі. кешке уақыт болса орнатып көру керек екен уордпрессті.
Сосын, осы юзермета кестесі артық емес па?? мета_валю бағанын вп-юзерс кестесіне қоса салуға не кедергі? әлде тағы басқа жақта қолданыла ма?
raimbek
Түсінікті )) Жоқ, қосуға болмайды. Қосатын болсаңыз пайдаланушылар туралы қосымша (кастомный) мәліметтер сақтай алмай қаласыз. wp_users ол жүйелік мәліметтер (логин, пароль т.б.) ал wp_usermeta әр түрлі қосымша мәліметтер. Оны плагиндер де қоса алады, ең бастысы керек болғанша бағандар қосуға болады. Мысалыға, вордпресске плагин жаздыңыз дейік, сәйкесінше пайдаланушы плагинді өшіріп қоса алуы керек болсын (әр пайдаланушы, яғни, бір пайдаланушы өшіріп қоюы мүмкін, екінші қосып қоюы мүмкін). Сонда сіз әр пайдаланушыға, өз плагиніңіз үшін meta_key мен meta_value қосып қоя аласыз, және ол кесте структурасын өзгертпейді. Ал ол users кестесінде болса, білмейм оны қалай жасауға болатынын, users кестесінің структурасын өзгерту керек болып қалады.

Жалпылама айтқанда users кестесінде бір пайдаланушы үшін бір ғана жазба, ал usermeta кестесінде бір пайдаланушыға көптеген жазбалар болуы мүмкін.

«сериалайздап па, жейсонмен кодтап па әлде үтір арқылы ма, соны сұраған едім негізі» бұл жағын білмеймін енді, wordpress кодын қарау керек ол үшін.
onlasyn
aa, meta_key-men bailaidy eken goi ar option-nyn dannyiyn. tusindim. Rahmet
yerbol89
Рахмет Райымбек. Мен өзімді Wordpress-те сайт жасауды жақсы білемін деп жүрсем, мына ақпараттан кейін білмейтінім өте көп екен деген ойға келдім.
wp_post-тағы post_content-те longtext қанша символға дейін ақпаратты қабылдайтын еді базасында?
raimbek
4,294,967,295 (2^32 – 1)

Негізі longtext mysql мәтіндік типі, mysql документациясынан: "LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]. A TEXT column with a maximum length of 4,294,967,295 or 4GB (2^32 – 1) characters."
Тек тіркелген қолданушылар ғана пікір қалдыра алады.