wp_insert_category() WP 2.0.0

Вставляє нову категорію до бази даних. Або оновлює існуючу, для цього потрібно вказати ID категорії.

Для додавання категорії можна використовувати простішу функцію wp_create_category() . До неї потрібно передавати лише назву категорії та ID батьківської категорії.

Якщо з’явиться помилка Fatal error: Call to undefined function wp_insert_category(), потрібно підключити файл /wp-admin/includes/taxonomy.php :

require_once ABSPATH. '/wp-admin/includes/taxonomy.php';

wp_insert_category( $catarr, $wp_error );

Працює на основі:
wp_update_term() ,
wp_insert_term()
Основа для:
wp_create_category()

Хуків немає.

Повертає

int|WP_Error. ID доданої категорії. true, якщо вдалося оновити існуючу. false або об’єкт WP_Error, якщо не вдалося оновити/вставити категорію.

Використання

wp_insert_category( $catarr, $wp_error );
$catarr
(масив) (обов’язковий)

Опції нової категорії. Допустимі параметри:

$cat_defaults = [
  'cat_ID' => 0 // ID категорії, яку потрібно оновити. 0 – додасть нову категорію.
  'cat_name' => '', // назва категорії. Обов'язковий.
  'category_description' => '', // опис категорії
  'category_nicename' => '', // склад категорії
  'category_parent' => 0, // ID батьківської категорії
  'taxonomy' => 'category' // Таксономія. Змініть, щоб додати елемент
								/ / Інший таксономії. Наприклад, для міток буде post_tag
];

Рекомендується вказувати лише необхідні параметри.

$wp_error
(логічний)
true – поверне об’єкт WP_Error у разі невдачі.


Типово: false

Приклади

0

#1 Додавання нової категорії

Щоб вставити нову рубрику на сайт, використовуйте такий код:

$my_cat = [
	'cat_name' => 'Нова категорія',
	'category_description' => 'Опис нової категорії',
	'category_nicename' => 'new-cat'
];

// вставляємо
$cat_id = wp_insert_category( $my_cat );

if($cat_id)
	echo 'Категорія додана';
else
	echo 'Неможливо додати категорію';
0

#2 Оновлення існуючої категорії

Відновимо існуючу категорію з ID=7. Встановимо їй нову назву:

$updated = wp_insert_category([
	'cat_ID' => 5,
	'cat_name' => 'Нова назва'
]);

if( $updated ){
	echo "категорія з $updated оновлена";
}
0

#3 Додавання елемента таксономії

Функція дозволяє додавати інші елементи таксономії, не тільки категорії. Давайте додамо мітку:

wp_insert_category([
	'cat_name' => 'Мітка',
	'taxonomy' => 'post_tag'
]);

список змін

З версії 2.0.0Введено.
З версії 2.5.0$wp_error parameter був added.
З версії 3.0.0The ‘taxonomy’ argument був added.

Код wp_insert_category() WP 6.0.2

function wp_insert_category( $catarr, $wp_error = false ) {
	$cat_defaults = array(
		'cat_ID' => 0,
		'taxonomy' => 'category',
		'cat_name' => '',
		'category_description' => '',
		'category_nicename' => '',
		'category_parent' => '',
	);
	$catarr = wp_parse_args( $catarr, $cat_defaults );

	if ( '' === trim( $catarr['cat_name'] ) ) {
		if ( ! $wp_error ) {
			return 0;
		} else {
			return new WP_Error( 'cat_name', __( 'You did not enter a category name.' ) );
		}
	}

	$catarr['cat_ID'] = (int) $catarr['cat_ID'];

	// Are we updating or creating?
	$update =! empty($catarr['cat_ID']);

	$name = $catarr['cat_name'];
	$description = $catarr['category_description'];
	$slug = $catarr['category_nicename'];
	$parent = (int) $catarr['category_parent'];
	if ($parent < 0) {
		$ parent = 0;
	}

	if ( empty( $parent )
		|| ! term_exists( $parent, $catarr['taxonomy'] )
		|| ( $catarr['cat_ID'] && term_is_ancestor_of( $catarr['cat_ID'], $parent, $catarr['taxonomy'] ) ) ) {
		$ parent = 0;
	}

	$args = compact( 'name', 'slug', 'parent', 'description' );

	if ($update) {
		$catarr['cat_ID'] = wp_update_term( $catarr['cat_ID'], $catarr['taxonomy'], $args );
	} else {
		$catarr['cat_ID'] = wp_insert_term( $catarr['cat_name'], $catarr['taxonomy'], $args );
	}

	if ( is_wp_error( $catarr['cat_ID'] ) ) {
		if ( $wp_error ) {
			return $catarr['cat_ID'];
		} else {
			return 0;
		}
	}
	return $catarr['cat_ID']['term_id'];
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *