WP Wiki - Створення, розробка сайтів
[http://igroup.com.ua/services/rozrobka-sajtu/] WP Wiki Новини Web майстру SEO Словник WP Wiki Функція add_post_meta() Додає довільне поле для певного поста / запису. Для додавання поля можна також використовувати функцію update_post_meta () . Вона часто зручніше і працює універсально, оновлює поле або створює нове, якщо такого поля немає. add_post_meta () зручніше використовувати, коли використовуються кілька довільних полів з однаковими ключами. Для цього у функції є параметр $unique (унікальний), який за замовчуванням дорівнює false, тобто за замовчуванням створюється не унікальний ключ, що означає що таких ключів може бути декілька. add_post_meta () працює на основі add_metadata () . Повертає true якщо операція по додаванню поля пройшла вдало або false, якщо поле додати не вдалося. Використання PHP php add_post_meta ($ post_id, $ meta_key, $ meta_value, $ unique); ?> 1 php add_post_meta ( $ post_id , $ meta_key , $ meta_value , $ unique ) ; ?> $ Post_id (число) (обов’язковий) ID поста, довільне поле до якого потрібно додати. За замовчуванням: немає $ Meta_key (рядок) (обов’язковий) Назва (ключ) довільного поля. За замовчуванням: немає $ Meta_value (рядок) Значення довільного поля. За замовчуванням: немає $ Unique (логічний) true – унікальний (тільки один), false – не унікальна. Якщо поставити параметр в true, то при додаванні поля, спочатку буде перевірятися чи існує вже поле з таким же ключем, якщо існує, то полі не буде додано. За замовчуванням: false Приклади 1. Базове використання. Додамо довільне поле “my_key” зі значенням 47, до поста 68: PHP php add_post_meta (68, 'my_key', 47); ?> 1 php add_post_meta ( 68 , 'my_key' , 47 ) ; ?> 2. Додавання або оновлення унікального довільного поля. Додамо довільне поле, якщо таке поле ще не існує або оновимо існуюче. Важливо розуміти, що якщо четвертий параметр add_post_meta стоїть в true, то полі не буде оновлено, якщо воно вже існує (приклад нижче). PHP php add_post_meta (7, 'fruit', 'banana', true) or update_post_meta (7, 'fruit', 'banana'); ?> 1 php add_post_meta ( 7 , 'fruit' , 'banana' , true ) or update_post_meta ( 7 , 'fruit' , 'banana' ) ; ?> для цього потрібно використовувати такий варіант: PHP if (! update_post_meta (...)) add_post_meta (...)) 1 if ( ! update_post_meta ( . . . ) ) add_post_meta ( . . . ) ) 3. Якщо ми хочемо бути впевнені, що поля з ключем “my_key” не існує, перед тим як додавати його: PHP php add_post_meta (68, 'my_key', '47', true); ?> 1 php add_post_meta ( 68 , 'my_key' , '47' , true ) ; ?> 4. А ось приклад, що дозволяє додати нам кілька довільних полів з однаковими ключами “my_key”: PHP php add_post_meta (68, 'my_key', '47'); ?> php add_post_meta (68, 'my_key', '682'); ?> php add_post_meta (68, 'my_key', 'The quick, brown fox jumped over the lazy dog. "); ?> 1 2 3 php add_post_meta ( 68 , 'my_key' , '47' ) ; ?> php add_post_meta ( 68 , 'my_key' , '682' ) ; ?> php add_post_meta ( 68 , 'my_key' , ' The quick , brown fox jumped over the lazy dog . " ) ; ?> Створення системних (захованих) довільних полів Якщо ви розробник і вам потрібно створити довільне поле, яке не буде видно користувачам, але при цьому буде працювати як звичайне довільне поле, то знайте що WordPress не показує довільні поля починаються з “_” (нижнього підкреслення). Не показує означає, що вони ігноруються на сторінці редагування постів або при використанні функції шаблону the_meta () . Тому, якщо потрібно раптом потрібно сховати довільне поле, то потрібно створювати поле з ключем починаються з “_”, наприклад: PHP php add_post_meta (68, '_color', 'red', true); ?> 1 php add_post_meta ( 68 , '_color' , 'red' , true ) ; ?> додасть унікальне довільне поле _color зі значенням red і це полі не буде виводиться в адмінці на сторінці редагування постів / постійних сторінок. Функція add_metadata() При розробці сайту виникає потреба додати мета (додаткові) дані до будь-якого об’єкту (запис, коментар, користувач). Ця функція є свого роду API для управління метаданими. Так як, для неї можна створити довільну таблицю в БД і записувати / видаляти дані з неї. Споріднені функції: update_metadata ($ meta_type, $ object_id, $ meta_key, $ meta_value, [$ prev_value]) – Можна використовувати замість add_metadata (), так як вона спочатку перевіряє існування ключа; delete_metadata ($ meta_type, $ object_id, $ meta_key, [$ meta_value], [$ delete_all]) – Видаляє дані по ключу; get_metadata ($ meta_type, $ object_id, [$ meta_key], [$ single]) – Отримує дані з БД, по ключу. add_metadata () використовується в add_user_meta (), add_post_meta () . Функція повертає false / true, залежно від того чи вдалося додати метадані. Використання PHP php add_metadata ($ meta_type, $ object_id, $ meta_key, $ meta_value, $ unique); ?> 1 php add_metadata ( $ meta_type , $ object_id , $ meta_key , $ meta_value , $ unique ) ; ?> $ Meta_type (рядок) (обов’язковий) Тип об’єкта, мета дані для якого потрібно додати. Може бути: comment, post або user (завжди в однині). За замовчуванням: немає $ Object_id (число) (обов’язковий) ID об’єкта, мета дані для якого додаються. За замовчуванням: немає $ Meta_key (рядок) (обов’язковий) Ключ – назва типу додаткових даних. За замовчуванням: немає $ Meta_value (рядок) (обов’язковий) Значення ключа додаткових даних. За замовчуванням: немає $ Unique (логічний) Визначення унікальності ключа. false – означає, що для цього об’єкта може бути визначено декілька однакових ключів. true – означає, що ключ для цього об’хекта може бути тільки один, тобто якщо такий ключ вже існує, то функція не додасть ніяких даних. За замовчуванням: false Таблиці метаданих в Базі Даних WP add_metadata () передбачає існування потрібних таблиць в БД, таблиць куди метадані будуть записуватися. За умовчанням в WordPress існує 3 такі таблиці для різних об’єктів (записи, коментарі та користувачі): wp_commentmeta Метадані для кожного коментаря wp_postmeta Метадані для постів. Сюди записуються звичні в WordPress “довільні поля поста” wp_usermeta Додаткові дані про користувача. Створення довільних таблиць в БД Якщо потрібно записувати будь-які інші дані (для інших об’єктів), то можна створити свою таблицю і користуватися add_metadata () і похідними їй функціями (update_metadata (), delete_metadata (), get_metadata ()) , для створеної таблиці. Структура створюваної таблиці: meta_id bigint (20) UNSIGNED NOT NULL auto_increment object_id Назва поля буде [названіе_об’екта] _id. bigint (20) UNSIGNED NOT NULL meta_key varchar (255) meta_value longtext Приклади 1. Приклад створення додаткових даних для коментаря 45: PHP php add_metadata ('comment', 45, 'vocation', 'Будівельник', true)?> 1 php add_metadata ( 'comment' , 45 , 'vocation' , 'Будівельник' , true ) ?> 2. Створення довільної таблиці метаданих. Створювати такі таблиці може знадобиться розробникам плагінів. Створення відбувається на етапі активації плагіна, через функцію register_activation_hook (). Потрібно розуміти, що подібні таблиці можуть створюватися й іншими плагінами, тому робіть перевірку на існування таких. Приклад створення таблиці метаданих: term: PHP global $ wpdb; $ Result = false; // Створюємо таблицю в БД, якщо її не існує $ Sql = sprintf ('CREATE TABLE IF NOT EXISTS `% stermmeta` ( `Meta_id` bigint (20) UNSIGNED NOT NULL auto_increment, `Term_id` bigint (20) UNSIGNED NOT NULL, `Meta_key` varchar (255), `Meta_value` longtext, PRIMARY KEY (`meta_id`) ) ', $ Wpdb-> prefix); $ Result = $ wpdb-> query ($ sql); 1 2 3 4 5 6 7 8 9 10 11 global $ wpdb ; $ Result = false ; // Створюємо таблицю в БД, якщо її не існує $ Sql = sprintf ( 'CREATE TABLE IF NOT EXISTS `% stermmeta` ( `Meta_id` bigint (20) UNSIGNED NOT NULL auto_increment, `Term_id` bigint (20) UNSIGNED NOT NULL, `Meta_key` varchar (255), `Meta_value` longtext, PRIMARY KEY (`meta_id`) ) ' , $ Wpdb -> prefix ) ; $ Result = $ wpdb -> query ( $ sql ) ; Замітка! Після того як таблиця створена, її потрібно зареєструвати в об’єкті $ wpdb, для того щоб потім простіше було з нею працювати через клас $ wpdb. Для реєстрації визначте властивість класу $ wpdb-> termmeta в якому вкажіть назву таблиці (робити це потрібно через хук init або перед використанням довільних функцій): PHP global $ wpdb; $ Wpdb-> termmeta = $ wpdb-> prefix.'termmeta '; 1 2 global $ wpdb ; $ Wpdb -> termmeta = $ wpdb -> prefix . 'termmeta ' ; Додавання даних в таблицю Term Тепер, коли таблиця створена, додати дані туди можна так: PHP add_metadata ('term', $ _GET ['tag_ID'], 'gender', 'M', true); add_metadata ('term', $ _GET ['tag_ID'], 'age', '29', true); add_metadata ('term', $ _GET ['tag_ID'], 'favourite_colour', 'Green', true); 1 2 3 add_metadata ( 'term' , $ _GET [ 'tag_ID' ] , 'gender' , 'M' , true ) ; add_metadata ( 'term' , $ _GET [ 'tag_ID' ] , 'age' , '29' , true ) ; add_metadata ( 'term' , $ _GET [ 'tag_ID' ] , 'favourite_colour' , 'Green' , true ) ; Функція wp_get_nav_menu_items() Отримує елементи меню навігації у вигляді масиву, який потім можна обробити. Повертає всі елементи (посилання) зазначеного меню навігації, яке створюється в панелі: “зовнішній вигляд” > “Меню” (Appearance > Menus). (більше…) Функція register_nav_menus() Реєструє кілька навігаційних меню одночасно. Навігаційні меню налаштовуються в адмін-панелі створеного сайту і виводяться в шаблоні функцією wp_nav_menu () . При налаштуванні, в меню можна зручно включати будь-які посилання: на рубрики, мітки, сторінки, пости, зовнішні посилання і т.д. Функцію прийнято викликати під час події after_setup_theme . (більше…) Функція register_nav_menu() Реєструє навігаційне меню (тільки одне меню). Таке меню зручно тим, що його можна дуже гнучко редагувати в адмін панелі, додаючи в нього посилання на будь-які розділи і сторінки сайту, а також і будь-які інші посилання. Меню виводитися в шаблоні функцією wp_nav_menu () . (більше…) Функція wp_nav_menu () На кожному сайті потрібно меню, на WordPress при створенні сайту для виведення меню нам потрібна функція wp_nav_menu () котра виводить навігаційне меню, створене в панелі: “дизайн> меню” (Appearance> Menus). Яке саме виводити меню (їх може бути декілька), вказується в параметрі “theme_location” . (більше…) Функція wp_get_nav_menus() Повертає масив (об’єктів) всіх зареєстрованих меню. wp_get_nav_menus () – це обгортка для функції get_terms () , яка отримує дані таксономії ‘nav_menu’. Тому дані меню це нова таксономія ‘nav_menu’, а пункти меню – це записи. (більше…) Функція get_tags() При створенні сайтів на WordPress інколи виникає необхідність вірсортувати публікації по певним міткам. В якості таких міток можуть виступати теги. Отримує масив об’єктів, з даними про мітки. Дані можна отримувати за різними критеріями (задається в параметрі $ args). (більше…) Функція WP get_terms() При розробці сайтів на WordPress інколи потрібно отримати всі елементи (терміни) зазначеної таксономії. get_terms () використовується в wp_get_nav_menus (), get_tags () , get_all_category_ids () , get_categories () . (більше…) Функція get_all_category_ids() Отримує ідентифікатори (ID) всіх категорій. Повертає масив, що містить ID усіх категорій. get_all_category_ids () працює на основі get_terms () . Використання (більше…) Популярні статті у WP Wiki Функція add_post_meta() Функція add_metadata() Функція wp_get_nav_menu_items() Функція register_nav_menus() Функція register_nav_menu() Про компанію Контакта інформація Наш офіс у Львові: вул. Івана Богуна, буд. 4 E-mail: info@igroup.com.ua © 2008-2017 "iGroup Ukraine" - просування сайтів Наші послуги Просування сайтів Пошукова оптимізація SEO аудит ресурсів Корисне Новини Web Майстру SEO Словник Розробка сайту Ми вибираємо: