get_page_by_title()
Отримує запис (сторінку, пост, довільний тип запису) за переданим заголовком запису.
Якщо знайдено кілька записів з однаковим заголовком, буде повернено запис із меншим ID.
Запис якого типу потрібно отримати вказується у третьому параметрі $post_type . За замовчуванням заголовок буде шукатись у “постійних сторінок” (page).
Оскільки функція використовує порівняння MySQL ‘ = ‘, заголовок найчастіше чутливий до регістру, залежить від налаштувань MySQL .
Якщо потрібно отримати ID з УРЛ, використовуйте спеціальну функцію: url_to_postid() .
Перш ніж використовувати цю функцію, обдумайте як вона буде працювати. Майте на увазі, що запит створюваної цієї функції не такий легкий, як, наприклад, отримання запису по ID. Функція шукає збіги в таблиці по неіндексованому стовпцю, тому їй доведеться перевірити всі рядки, що збігаються з типом запису. Тому тут за умовчанням стоїть тип page , зазвичай там не більше 10 записів.
(дуже повільно) | 50000 разів – 19.42 сек
(повільно) |
PHP 7.0.2, WP 4.4.1
Хуків немає.
Повертає
WP_Post|Массив|null
.
OBJECT, ARRAY_N, ARRAY_A – залежить від параметра $output. Дані масиву, що повертається, повністю збігаються з полями таблиці wp_posts .
- null – якщо запис не було знайдено.
Використання
get_page_by_title($page_title, $output, $post_type);
-
$page_title
(рядок) (обов’язковий) - Заголовок запису (поста, сторінки) дані якої потрібно отримати.
-
$output
(рядок) Формат виведення знайденого запису. Може бути:
- OBJECT – повертати як об’єкт;
- ARRAY_N – повертати як нумерований масив;
- ARRAY_A – повертати як асоціативний масив.
Типово: OBJECT
-
$post_type
(рядок/масив) -
Назва типу посту. Для постів це ‘post’. Можна вказати кілька типів у масиві:
array(‘post’, ‘page’); .
За замовчуванням: ‘page’
Приклади
#1 Отримаємо дані сторінки
Є сторінка із заголовком “Про сайт”. Нам потрібно отримати об’єкт даних цієї сторінки (всі дані рядка таблиці wp_posts у базі даних):
$ppp = get_page_by_title('Про сайт'); /* $ppp міститиме: WP_Post Object ( [ID] => 7 [post_author] => 1 [post_date] => 2010-03-28 15:31:00 [post_date_gmt] => 2010-03-28 11:31:00 [post_content] => Контент запису. Зазвичай тут багато написано:) [post_title] => Про сайт / Про автора [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => closed [post_password] => [post_name] => про [to_ping] => [pinged] => [post_modified] => 2014-04-21 01:23:20 [post_modified_gmt] => 2014-04-20 21:23:20 [post_content_filtered] => [post_parent] => 0 [guid] => http://wp-kama.ru/about [menu_order] => 0 [post_type] => page [post_mime_type] => [comment_count] => 116 [filter] => raw ) */
Отримавши об’єкт посту, ми можемо дізнатися різні дані запису. Наприклад, так ми можемо дізнатися ID запису за заголовком:
$ppp = get_page_by_title('Про сайт'); echo $ppp->ID; // ID запису echo $ppp->post_content; // контент запису
#2 Виключимо сторінку зі списку за заголовком
Припустимо, ми виводимо в меню сторінки. Але нам не потрібно виводити в це меню сторінку із заголовком “Контакти”. Виключаємо так:
<?php $page = get_page_by_title( 'Контакти'); wp_list_pages( 'exclude=' . $page->ID ); ?>
нотатки
- Global. wpdb. $wpdb WordPress database abstraction object.
список змін
З версії 2.1.0 | Введено. |
З версії 3.0.0 | $post_type parameter був added. |