yarkov
@yarkov
Помог ответ? Отметь решением.

Что не так с wordpress?

<?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);

?>

Казалось бы, примитивный же скрипт! Но нет! Просто 500 ошибка и все. Если убрать вызов wp_create_category, то выведет несколько строк Не удалось создать категорию %name%, как и положено. JSON в файле валидный, все норм. Только вызов функции не работает.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
С WordPress все в порядке. Проблема с вами - вы вообще не понимаете как работает CMS, что такое runtime environment, page lifecycle и пытаетесь вырывать функционал из контекста, не понимая в каком scope находитесь.
Ответ написан
yarkov
@yarkov Автор вопроса
Помог ответ? Отметь решением.
<?php
header("Content-Type: text/plain; charset=utf-8");

error_reporting(E_ALL | E_STRICT);
set_time_limit(0);


require_once "./wp-config.php";
require_once "./wp-includes/functions.php";
require_once "./wp-includes/formatting.php";
require_once "./wp-includes/taxonomy.php";
require_once "./wp-admin/includes/taxonomy.php";

$json = file_get_contents("test.txt");

$catlist = json_decode($json, true);

//echo "<pre>";
//var_dump($catlist);
//echo "</pre>";

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>";
			if(count($cat_object["childs"]) > 0){
				create_tree_from_list($cat_object["childs"], $id);
			}
		}
		else{
			echo 'Не удалось создать категорию '.$name.'<br>';
		}
	}
}

create_tree_from_list($catlist);

?>

Вот так все работает ))) Получаем список категорий с подкатегориями.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы