WordPress. Произвольные поля. Часть 1 из 2

15.08.2019

Теги: CMSWeb-разработкаWordPressМетаДанные

В WordPress есть возможность для каждой записи любого типа (post, page и прочие) задавать неограниченное количество параметров в виде пар ключ-значение. Для их хранения предусмотрена отдельная таблица в базе данных wp_postmeta. Эти параметры называются произвольными полями или мета-полями записи.

Произвольные поля в админке

Переходим на страницу редактирования или создания нового поста, прокручиваем вниз до блока «Произвольные поля». Задаем (или выбираем из списка) имя параметра и его значение. Для одного параметра может быть задано несколько значений.

Как вывести метаданные записи

Функция the_meta()

Позволяет вывести все произвольные поля текущего поста в виде маркированного списка:

the_meta();
<ul class="post-meta">
    <li><span class="post-meta-key">meta_keywords:</span> Lorem ipsum dolor sit amet...</li>
    <li><span class="post-meta-key">meta_description:</span> Lorem ipsum dolor sit amet...</li>
    <li><span class="post-meta-key">size:</span> small, medium, large</li>
</ul>

Обратите внимание, что функция не выводит защищенные мета-поля, которые начинаются с подчеркивания.

Функция get_post_meta()

Позволяет получить значение произвольного поля поста:

get_post_meta(
    $post_id,       // идентификатор поста
    $key = '',      // название произвольного поля
    $single = false // возвращать только одно значение?
);

Одно, самое первое значение мета-поля size поста с идентификатором 1883:

echo get_post_meta(1883, 'size', true);
small

Все значения мета-поля с ключом size поста с идентификатором 1883:

$post_meta = get_post_meta(1883, 'size');
print_r($post_meta);
Array
(
    [0] => small
    [1] => medium
    [2] => large
)

Все значения всех мета-полей поста с идентификатором 1883:

$post_meta = get_post_meta(1883);
print_r($post_meta);
Array
(
    [_edit_lock] => Array
        (
            [0] => 1565857019:1
        )
    [_edit_last] => Array
        (
            [0] => 1
        )
    [meta_keywords] => Array
        (
            [0] => Lorem ipsum dolor sit amet, consectetur adipisicing elit
        )
    [meta_description] => Array
        (
            [0] => Lorem ipsum dolor sit amet, consectetur adipisicing elit
        )
    [_thumbnail_id] => Array
        (
            [0] => 2231
        )
    [size] => Array
        (
            [0] => small
            [1] => medium
            [2] => large
        )
)

Функция get_post_custom()

Возвращает многоуровневый массив всех мета-полей для текущего поста или поста, идентифкатор которого указан в параметрах функции.

$post_meta = get_post_custom(1883);
print_r($post_meta);
Array
(
    [_edit_lock] => Array
        (
            [0] => 1565857140:1
        )
    [_edit_last] => Array
        (
            [0] => 1
        )
    [meta_keywords] => Array
        (
            [0] => Lorem ipsum dolor sit amet, consectetur adipisicing elit
        )
    [meta_description] => Array
        (
            [0] => Lorem ipsum dolor sit amet, consectetur adipisicing elit
        )
    [_thumbnail_id] => Array
        (
            [0] => 2231
        )
    [size] => Array
        (
            [0] => small
            [1] => medium
            [2] => large
        )
)

Функция get_post_custom_keys()

Возвращает массив с ключами мета-полей для текущего поста или поста, идентифкатор которого указан в параметрах функции.

$post_meta_keys = get_post_custom_keys(1883);
print_r($post_meta_keys);
Array
(
    [0] => _edit_lock
    [1] => _edit_last
    [2] => meta_keywords
    [3] => meta_description
    [4] => _thumbnail_id
    [5] => size
)

Функция get_post_custom_values()

Возвращает массив значений мета-поля по ключу для текущего поста или поста, идентифкатор которого указан в параметрах функции. Обратите внимание, что функция всегда возвращает массив, даже если у мета-поля только одно значение.

$post_meta_values = get_post_custom_values('size', 1883);
print_r($post_meta_values);
Array
(
    [0] => small
    [1] => medium
    [2] => large
)

Поиск: CMS • Web-разработка • WordPress • Произвольные поля • Мета данные • the_meta • get_post_meta

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.