WordPress как на ладони
wordpress jino

wp_create_category() WP 2.0.0

Упрощенная функция добавления категории, в которую нужно передать название новой категории и если нужно ID родительской категории.

wp_create_category() - обертка для функции wp_insert_category().

Работает на основе: wp_insert_category()

Хуков нет.

Возвращает

0 - при неудаче. ID добавленной категории, если удалось добавить рубрику.

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

wp_create_category( $cat_name, $parent );
$cat_name(строка) (обязательный)
Название новой категории.
$parent(число)
ID категории, которая будет родительской для добавляемой.

Примеры

#1 Создадим рубрику "разное"

wp_create_category('Разное');

#2 Создадим дочернюю рубрику

Чтобы создать рубрику, которая будет дочерней к рубрике с ID = 6, нужно указать второй параметр:

wp_create_category('PHP', 6);

#3 Проверка создалась ли категория

$id = wp_create_category('Разное');

if( $id )
	echo 'Создана';
else
	echo 'Не создана';

Код wp create category: wp-admin/includes/taxonomy.php WP 4.8.2

<?php
function wp_create_category( $cat_name, $parent = 0 ) {
	if ( $id = category_exists($cat_name, $parent) )
		return $id;

	return wp_insert_category( array('cat_name' => $cat_name, 'category_parent' => $parent) );
}

Cвязанные функции

Из раздела: Рубрики

wp_create_category 4 комментария
  • Алексей cайт: freelanceronline.ru @
    <?php
    header("Content-Type: text/html; charset=utf-8");
    
    error_reporting(E_ALL);
    set_time_limit(0);
    
    require_once "./wp-admin/includes/taxonomy.php";
    
    $catlist = json_decode(file_get_contents("test.txt"), true);
    
    function create_tree_from_list($list, $parent_id = 0) {
    	foreach($list as $cat => $cat_object){
    		$name = $cat_object["name"];
    		$id = wp_create_category($name, $parent_id);
    		if( $id ){
    			echo $name . " (" . count($cat_object['childs']) . "): ID [" . $id . "]<br>";
    		}
    		else{
    			$id = $parent_id;
    			echo 'Не удалось создать категорию '.$name.'<br>';
    		}
    		if(count($cat_object["childs"]) > 0){
    			create_tree_from_list($cat_object["childs"], $id);
    		}
    	}
    }
    
    create_tree_from_list($catlist);
    
    ?>

    Если убрать вызов wp_create_category, то все работает. А так просто 500 ошибка. Что я делаю не так?

    Ответить1.2 года назад #
    • Kama4464

      Где-то ошибка...

      1. Включать показ ошибок в том же файле где есть эта ошибка не имеет смысла...
      2. Убедись что путь "./wp-admin/includes/taxonomy.php" верный. Например так:

        die( var_dump( file_exists("./wp-admin/includes/taxonomy.php") ) );
      3. Убедись что file_get_contents("test.txt") получает нужные данные... Там обычно нужно полный путь до файла указать или URL...

      В остальном я по коду ошибок не вижу...

      Ответить1.2 года назад #
      • Алексей cайт: freelanceronline.ru @

        create_categories.php
        Вот gist с кодом. Путь к ./wp-admin/includes/taxonomy.php верный. Файл лежит в корне сайта. И ошибок не выводит никаких и категорий не создает. Трындец, неделю мучаюсь ))

        Ответить1.2 года назад #

Здравствуйте, !

Ваш комментарий