wp_insert_post добавить meta_input

8

В документации на 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']
            )
        )
    ) ); 
}

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

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

ronnyrr
источник

Ответы:

19

meta_inputэто просто одномерный массив как key => value:

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

tax_input немного отличается, с налогом в качестве ключа и массивом значений:

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

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

Milo
источник
1
Извините за поздний ответ, но спасибо за четкое объяснение! Полностью сработало, как и ожидалось
ronnyrr