wp_insert_term()

Добавляет новый термин в базу данных
Функция WordPress
INT 2.3.0
WordPress Icon

Описание функции

Функция wp_insert_term() используется для добавления нового термина в базу данных WordPress. Термин представляет собой категорию, метку или другую таксономию, которая используется для классификации контента в WordPress. Функция позволяет создать новый термин и указать его название, таксономию и другие параметры.

Использование

wp_insert_term( string $term, string $taxonomy, array|string $args = array() ): array|WP_Error

Функция wp_insert_term() принимает три обязательных параметра: $term (строка) — название термина, $taxonomy (строка) — таксономия, к которой будет добавлен термин, и $args (массив или строка) — дополнительные аргументы для добавления термина.

  • $term (string, обязательный): Название термина, который нужно добавить.
  • $taxonomy (string, обязательный): Таксономия, к которой будет добавлен термин.
  • $args (array|string, необязательный): Массив или строка с дополнительными аргументами для добавления термина.
    • alias_of (string): Slug термина, который будет являться псевдонимом для этого термина. По умолчанию пустая строка.
    • description (string): Описание термина. По умолчанию пустая строка.
    • parent (int): ID родительского термина. По умолчанию 0.
    • slug (string): Slug термина. По умолчанию пустая строка.

Функция возвращает массив с данными о новом термине, если добавление прошло успешно. В случае ошибки возвращается объект класса WP_Error.

<?php
// Создаем новый термин с названием "Новая категория" в таксономии "category"
$new_term = wp_insert_term( 'Новая категория', 'category', array(
  'description' => 'Описание новой категории',
  'parent' => 0,
  'slug' => 'new-category'
) );
if ( ! is_wp_error( $new_term ) ) {
  // Термин успешно добавлен
  $term_id = $new_term['term_id'];
  $term_name = $new_term['name'];
  echo "Термин $term_name (ID: $term_id) успешно добавлен.";
} else {
  // Возникла ошибка при добавлении термина
  $error_message = $new_term->get_error_message();
  echo "Ошибка при добавлении термина: $error_message";
}
?>

В этом примере мы используем функцию wp_insert_term() для добавления новой категории с названием «Новая категория» в таксономию «category». Мы также указываем описание, родительский термин и slug для новой категории. Если добавление прошло успешно, мы выводим сообщение об успешном добавлении термина. В противном случае, если возникла ошибка, мы выводим сообщение об ошибке.

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

Добавление нового термина в таксономию


$term = 'New Term';
$taxonomy = 'category';
$result = wp_insert_term( $term, $taxonomy );
if ( ! is_wp_error( $result ) ) {
    echo 'Термин успешно добавлен.';
} else {
    echo 'Ошибка при добавлении термина: ' . $result->get_error_message();
}

В данном примере мы добавляем новый термин с названием «New Term» в таксономию «category». Функция wp_insert_term() возвращает массив с данными нового термина, если операция прошла успешно, или объект WP_Error в случае ошибки. В данном примере мы проверяем, успешно ли добавлен термин, и выводим соответствующее сообщение.

Изменение описания термина


$term = 'Existing Term';
$taxonomy = 'category';
$description = 'New description';
$term_data = get_term_by( 'name', $term, $taxonomy );
if ( $term_data ) {
    $term_id = $term_data->term_id;
    $result = wp_update_term( $term_id, $taxonomy, array( 'description' => $description ) );
    if ( ! is_wp_error( $result ) ) {
        echo 'Описание термина успешно изменено.';
    } else {
        echo 'Ошибка при изменении описания термина: ' . $result->get_error_message();
    }
} else {
    echo 'Термин не найден.';
}

В данном примере мы изменяем описание существующего термина «Existing Term» в таксономии «category». Сначала мы получаем данные о термине с помощью функции get_term_by(), затем обновляем описание с помощью функции wp_update_term(). Если операция прошла успешно, выводим соответствующее сообщение, в противном случае выводим сообщение об ошибке.

Создание псевдонима для термина


$term = 'Existing Term';
$taxonomy = 'category';
$alias = 'Alias Term';
$term_data = get_term_by( 'name', $term, $taxonomy );
if ( $term_data ) {
    $term_id = $term_data->term_id;
    $result = wp_update_term( $term_id, $taxonomy, array( 'alias_of' => $alias ) );
    if ( ! is_wp_error( $result ) ) {
        echo 'Псевдоним успешно создан.';
    } else {
        echo 'Ошибка при создании псевдонима: ' . $result->get_error_message();
    }
} else {
    echo 'Термин не найден.';
}

В данном примере мы создаем псевдоним для существующего термина «Existing Term» в таксономии «category». Сначала мы получаем данные о термине с помощью функции get_term_by(), затем обновляем псевдоним с помощью функции wp_update_term(). Если операция прошла успешно, выводим соответствующее сообщение, в противном случае выводим сообщение об ошибке.

Установка родительского термина


$term = 'Child Term';
$taxonomy = 'category';
$parent = 'Parent Term';
$parent_term_data = get_term_by( 'name', $parent, $taxonomy );
if ( $parent_term_data ) {
    $parent_term_id = $parent_term_data->term_id;
    $result = wp_insert_term( $term, $taxonomy, array( 'parent' => $parent_term_id ) );
    if ( ! is_wp_error( $result ) ) {
        echo 'Родительский термин успешно установлен.';
    } else {
        echo 'Ошибка при установке родительского термина: ' . $result->get_error_message();
    }
} else {
    echo 'Родительский термин не найден.';
}

В данном примере мы создаем дочерний термин «Child Term» в таксономии «category» и устанавливаем его родительским термином «Parent Term». Сначала мы получаем данные о родительском термине с помощью функции get_term_by(), затем добавляем новый термин с помощью функции wp_insert_term() и указываем его родительский термин. Если операция прошла успешно, выводим соответствующее сообщение, в противном случае выводим сообщение об ошибке.

Изменение слага термина


$term = 'Existing Term';
$taxonomy = 'category';
$slug = 'new-term-slug';
$term_data = get_term_by( 'name', $term, $taxonomy );
if ( $term_data ) {
    $term_id = $term_data->term_id;
    $result = wp_update_term( $term_id, $taxonomy, array( 'slug' => $slug ) );
    if ( ! is_wp_error( $result ) ) {
        echo 'Слаг термина успешно изменен.';
    } else {
        echo 'Ошибка при изменении слага термина: ' . $result->get_error_message();
    }
} else {
    echo 'Термин не найден.';
}

В данном примере мы изменяем слаг существующего термина «Existing Term» в таксономии «category». Сначала мы получаем данные о термине с помощью функции get_term_by(), затем обновляем слаг с помощью функции wp_update_term(). Если операция прошла успешно, выводим соответствующее сообщение, в противном случае выводим сообщение об ошибке.

Вопросы и ответы

Как добавить новый термин в базу данных?

Для добавления нового термина в базу данных WordPress используется функция wp_insert_term(). Эта функция принимает три обязательных параметра: $term, $taxonomy и $args.

Параметр $term должен содержать название нового термина, который вы хотите добавить.

Параметр $taxonomy должен содержать название таксономии, к которой вы хотите добавить термин.

Параметр $args является необязательным и может содержать дополнительные аргументы для добавления термина. Например, вы можете указать родительский термин, описание или слаг для нового термина.


$term = 'Новый термин';
$taxonomy = 'название_таксономии';
$args = array(
    'description' => 'Описание нового термина',
    'slug' => 'новый-термин'
);
$result = wp_insert_term( $term, $taxonomy, $args );
if ( ! is_wp_error( $result ) ) {
    echo 'Термин успешно добавлен!';
} else {
    echo 'Ошибка при добавлении термина: ' . $result->get_error_message();
}

Как указать родительский термин при добавлении нового термина?

Для указания родительского термина при добавлении нового термина в базу данных, в параметре $args функции wp_insert_term() нужно указать значение 'parent' равное ID родительского термина.


$term = 'Новый термин';
$taxonomy = 'название_таксономии';
$args = array(
    'parent' => 5
);
$result = wp_insert_term( $term, $taxonomy, $args );
if ( ! is_wp_error( $result ) ) {
    echo 'Термин успешно добавлен!';
} else {
    echo 'Ошибка при добавлении термина: ' . $result->get_error_message();
}

Как задать описание для нового термина?

Для задания описания для нового термина при добавлении в базу данных, в параметре $args функции wp_insert_term() нужно указать значение 'description' равное описанию термина.


$term = 'Новый термин';
$taxonomy = 'название_таксономии';
$args = array(
    'description' => 'Описание нового термина'
);
$result = wp_insert_term( $term, $taxonomy, $args );
if ( ! is_wp_error( $result ) ) {
    echo 'Термин успешно добавлен!';
} else {
    echo 'Ошибка при добавлении термина: ' . $result->get_error_message();
}

Как задать слаг для нового термина?

Для задания слага нового термина в функции wp_insert_term() используется параметр slug. По умолчанию, если параметр не указан, слаг будет пустым.


$args = array(
    'slug' => 'my-term-slug'
);
wp_insert_term( 'My Term', 'my_taxonomy', $args );

Как сделать новый термин псевдонимом другого термина?

Для того чтобы сделать новый термин псевдонимом другого термина, в функции wp_insert_term() используется параметр alias_of. Этот параметр принимает слаг термина, который должен стать псевдонимом.


$args = array(
    'alias_of' => 'existing-term-slug'
);
wp_insert_term( 'New Term', 'my_taxonomy', $args );

Как получить данные о новом термине после его добавления?

После добавления нового термина с помощью функции wp_insert_term(), можно получить данные о нем, используя возвращаемое значение функции. Если термин успешно добавлен, возвращается массив с данными о новом термине.


$result = wp_insert_term( 'New Term', 'my_taxonomy' );
if ( ! is_wp_error( $result ) ) {
    $term_id = $result['term_id'];
    $term_name = $result['name'];
    $term_slug = $result['slug'];
    // и другие данные о термине
}

Как обработать ошибку при добавлении нового термина?

При использовании функции wp_insert_term() для добавления нового термина в базу данных WordPress, возможны ситуации, когда происходит ошибка. Для обработки ошибок необходимо проверить возвращаемое значение функции.

Если функция успешно добавляет новый термин, она возвращает массив данных нового термина. В случае ошибки, функция возвращает объект класса WP_Error. Для проверки наличия ошибок можно использовать функцию is_wp_error().

Пример обработки ошибки:


$term = 'New Term';
$taxonomy = 'category';
$result = wp_insert_term( $term, $taxonomy );
if ( is_wp_error( $result ) ) {
    $error_message = $result->get_error_message();
    echo 'Ошибка при добавлении термина: ' . $error_message;
} else {
    echo 'Термин успешно добавлен.';
}

Как удалить новый термин после его добавления?

Если после добавления нового термина необходимо его удалить, можно воспользоваться функцией wp_delete_term(). Эта функция удаляет термин из базы данных.

Пример удаления термина:


$term_id = 123;
$result = wp_delete_term( $term_id, $taxonomy );
if ( is_wp_error( $result ) ) {
    $error_message = $result->get_error_message();
    echo 'Ошибка при удалении термина: ' . $error_message;
} else {
    echo 'Термин успешно удален.';
}

Как обновить данные нового термина после его добавления?

Если после добавления нового термина необходимо обновить его данные, можно воспользоваться функцией wp_update_term(). Эта функция обновляет информацию о термине в базе данных.

Пример обновления данных термина:


$term_id = 123;
$args = array(
    'name' => 'Updated Term',
    'description' => 'New description',
);
$result = wp_update_term( $term_id, $taxonomy, $args );
if ( is_wp_error( $result ) ) {
    $error_message = $result->get_error_message();
    echo 'Ошибка при обновлении термина: ' . $error_message;
} else {
    echo 'Термин успешно обновлен.';
}

Функция wp_insert_term() позволяет добавлять новые термины в базу данных WordPress. При использовании этой функции важно проверять возвращаемое значение на наличие ошибок с помощью функции is_wp_error(). Если возникла ошибка, можно обработать ее и вывести соответствующее сообщение. Также можно использовать функции wp_delete_term() и wp_update_term() для удаления и обновления данных термина соответственно.

Связанные элементы

  • Хук created_term: вызывается после успешного создания нового термина.
  • Хук create_term: вызывается перед созданием нового термина.
  • Хук pre_insert_term: вызывается перед вставкой нового термина в базу данных.
  • Хук term_id_filter: вызывается после получения идентификатора термина.
  • Класс WP_Error: представляет ошибку WordPress.
  • Класс WP_Term: представляет термин WordPress.
  • Класс WP_Term_Query: используется для выполнения запросов к терминам WordPress.
  • Класс WP_Taxonomy: представляет таксономию WordPress.
Обсуждение