Добавить страницу (ноду) через код

Страница создаётся через объект Node::create().

use \Drupal\node\Entity\Node;

$node = Node::create([
    'title'   => 'Название статьи',
    'type'    => 'article', // тип статьи
    'status'  => 1,         // опубликован (по умолчанию «1»)
    'promote' => 1,         // выводить на главной (по умолчанию «1»)
    'comment' => 2,         // комментарии (1 — закрыты, 2 — открыты, по умолчанию «2»)
    'uid' => 1,             // ИД пользователя, который добавил страницу (по умолчанию «1»)
    'body' => [
        [
            'value' => '<p>Контент страницы</p>',
            'summary' => 'Краткое описание',
            'format' => 'full_html', // формат (filtered_html, plain_text)
        ]
    ],
    
    // Для текстовых, числовых полей и полей типа Boolean (1 / 0)
    'field_rating' => 8,
    
    // Таксономия (Term reference)
    'field_category' => 5,
    
    // Поле с типом Date
    'field_date' => '2019-03-17T21:26:45', // Date and Time
    'field_date_2' => '2019-03-17',        // Date only
]);

// добавление страницы (ноды)
$node->save();

Если в параметре uid будет указан ИД несуществующего пользователя, то автор будет указан как «Anonymous (not verified)».

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

Картинка сохраняется на сайте через функцию file_save_data().

// Загрузка и сохранение картинки
$data = file_get_contents('http://example.ru/image.jpg');
$file = file_save_data($data, 'public://image.jpg', FILE_EXISTS_REPLACE);

// Добавление картинки в статью
$node = Node::create([
    'title'   => 'Название статьи',
    'type'    => 'article',

    // поле «Image»
    'field_image' => $file->id(),
]);

$node->save();