Wordpress-ті түсіну және онда мәліметтермен жұмыс. Бірінші бөлім. Кіріспе
Бұл мақала WordPress-тегі мәліметтер туралы мақалалар сериясындағы Rachel McCollin бірінші мақаласы. Мақалада Wordpress-тегі контенттер типтері және олардың өзара байланыстары туралы қарастырылған. Мақала біріншіден wordpress-те жаңадан жұмыс бастағандарға пайдалы болады, бірақ профессионалдар да өздеріне пайдалы нәрселер таба алады.
Worpress арқылы жасалған сайт үш бөлімнен тұрады:
- Worpress-тің орнатылуы
- wp-content папкасының құрамы: плагиндар, темалар, жүктелген файлдар
- Контент сақталатын мәліметтер қоры
Worpdpress пайдаланушыларының көпшілігі мәліметтер қорымен тікелей ешқашан жұмыс жасамайды. Олар сайттарының жұмыс жасауы үшін мәліметтер қорының тынымсыз жұмыс істейтінін білмеуі де мүмкін. Wordpress кез-келген бетті көрсеткен кезде, ол мәліметтер қорына қосылады да, алдын ала автор енгізген контентті көрсетеді.
Бұл мақалалар сериясында Wordpress-тің мәліметтер қорымен жұмыс жасау жағы қарастырылады. Мақалалар сериясы тоғыз бөлімнен тұрады:
- Кіріспе (сіз қазір осы бөлімді оқып отырсыз)
- Мәліметтер арасындағы байланыстар
- Контенттер типтері
- Пайдаланушылар мәліметтері
- Метамәліметтер
- Таксономиялар, категориялар, белгілер және терминдер
- Таксономиялар VS метамәліметтер
- Баптаулар кестесі
- 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 кодексінен алынған. Онда кестелер және олардың арасындағы байланыстар көрсетілген:
Көптеген кестелер басқа бір немесе бірнеше кестемен бір баған арқылы байланысқан. Бұл баған әрбір мәлімет үшін қайталанбайтын идентификатор болады (мысалы 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
usermeta-da kestesindegi meta_value-da dannyi qalai saqtalady? mysaly keltirp korsete alasyn ba?
Кейін назар аударыңыз, бұл аударма (бірінші абзацта жазылған), сондықтан, кей сұрақтарға нақты жауап бере алмауым мүмкін ))
«Each user features information called the meta data and it is stored in wp_usermeta.»
Яғни, бұл баған (meta_value) «meta_key» бағанымен сәйкестікте жұмыс жасайды, онда пайдаланушы туралы кез-келген мәліметтер (аты, фамилия...) және қосымша баптаулар (comment_shortcuts) сақталады.
сериалайздап па, жейсонмен кодтап па әлде үтір арқылы ма, соны сұраған едім негізі. кешке уақыт болса орнатып көру керек екен уордпрессті.
Сосын, осы юзермета кестесі артық емес па?? мета_валю бағанын вп-юзерс кестесіне қоса салуға не кедергі? әлде тағы басқа жақта қолданыла ма?
Жалпылама айтқанда users кестесінде бір пайдаланушы үшін бір ғана жазба, ал usermeta кестесінде бір пайдаланушыға көптеген жазбалар болуы мүмкін.
«сериалайздап па, жейсонмен кодтап па әлде үтір арқылы ма, соны сұраған едім негізі» бұл жағын білмеймін енді, wordpress кодын қарау керек ол үшін.
wp_post-тағы post_content-те longtext қанша символға дейін ақпаратты қабылдайтын еді базасында?
Негізі 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."