wp_insert_post добавление meta_input

19 февр. 2016 г., 01:51:58
Просмотры: 30.9K
Голосов: 13

В документации функции wp_insert_post есть список изменений в середине страницы, где указано следующее:

Начиная с: WordPress 4.4.0 массив 'meta_input' теперь может быть передан в $postarr для добавления метаданных записи.

Я использую WordPress 4.4.2. Пытаюсь добавить новую запись, выполняя следующий код:

function handle_post($post) 
{
    wp_insert_post( array(
        'post_title'    => $post['title'],
        'post_type'     => 'werknemers',
        'meta_input'    => array(
            array(
                'key'   => 'name',
                'value' => $post['name']
            ),
            array(
                'key'   => 'city',
                'value' => $post['city']
            )
        )
    ) ); 
}

Запись добавляется в базу данных, но без метаданных. Я нашел этот пост на Stack, но не могу разобраться, как реализовать if statement.

Также меня интересует способ добавления таксономий (tax_input).

0
Все ответы на вопрос 1
1
34

meta_input — это просто одномерный массив вида ключ => значение:

'meta_input' => array(
    'name' => $post['name'],
    'city' => $post['city']
)

tax_input устроен немного иначе: в качестве ключа используется название таксономии, а значением является массив терминов:

'tax_input' => array( 
    'taxonomy_name' => array( 
        'term', 
        'term2', 
        'term3' 
    ) 
)

Обратите внимание, что для работы tax_input текущий авторизованный пользователь при выполнении кода должен иметь права на управление указанной таксономией, иначе операция завершится без ошибок, но не сработает.

19 февр. 2016 г. 02:05:09
Комментарии

Извините за поздний ответ, но спасибо за четкое объяснение! Все сработало именно так, как ожидалось

ronnyrr ronnyrr
25 февр. 2016 г. 22:05:43