Динамически добавлять термин таксономии в пользовательский тип сообщения при создании сообщения - PullRequest
0 голосов
/ 25 февраля 2020

Я создал пользовательский тип сообщения и таксономию с помощью пользовательского интерфейса пользовательского типа сообщения. На веб-интерфейсе есть форма, которая при заполнении создает новую запись в пользовательском типе записи Survey. Я бы хотел, чтобы заголовок поста (он динамически добавлялся на основе другого поста) был термином таксономии, пользовательская таксономия - survey_category. Я нашел это:

add_action('publish_survey', 'add_survey_term');
function add_survey_term($post_ID) {
    global $post;
    $survey_post_name = $post->post_name;
    wp_insert_term( $survey_post_name, 'survey_category');
}

, но это не похоже на работу. Мне нужно, чтобы он вставил термин, и если он уже существует, мне нужно обновить количество сообщений, связанных с этим термином.

1 Ответ

0 голосов
/ 26 февраля 2020

Вы можете использовать wp_set_object_terms() для динамического добавления таксономии к вашему сообщению. Эта функция вставит термин и, если термин уже существует, обновит количество сообщений, связанных с этим термином. Я сделал небольшой пример с названием поста и названием таксономии, вы можете попробовать ниже код:

$name = $_POST['value']['post_name'];
$tax_name = $_POST['value']['tax_name'];

$args = array(
    'post_title' => $name,
    'post_type' => 'your_post_type',
    'post_status' => 'publish',
    'comment_status' => 'close',
    'ping_status' => 'closed'
);
$pid = wp_insert_post($args);

wp_set_object_terms($pid, $tax_name, 'your_tax_slug', false);

Для получения дополнительной справки wp_set_object_terms() вы можете проверить эту ссылку .

Надеюсь, это поможет вам.

...