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. |