Пост

Отложенный пост очень нужен — автоматическая размещение готового текста в определённое время. С помощью таких функций можно заранее подготовить публикации и не переживать о том, чтобы выкладывать их в нужное время.

4 Ответа

  1. Да, это функция была бы не лишней, точно. Пока лишь могу добавить её в список того, что желательно сделать. Спасибо. 👍

    1. Может на первых парах создать файл с функцией публикации 1 поста из черновика — sait.ru/cron/fancHkd3-f13sdf-dsf.php — чтобы можно было хотя бы так публиковать посты.

      1. Если делать, то делать надо сразу нормально. Для это надо ввести сперва сюда календарь. Для календаря необходимо изучить библиотеки JS, сюда не все подойдут, надо искать легкие. Это всё время.

        Заплатки, время на них тратить не надо. ИМХО. Просто времени не так много, чтобы сперва делать временное, а потом уже постоянное.

  1. Сделал

    Создайте файл как пример не важно название sait.ru/cron/fancHkd3-f13sdf-dsf.php

    Пропишите доступ к вашей базе — и при каждой загрузке этой страницы из черновика будет публиковаться 1 пост!

    <?php
    // Настройки подключения к базе данных
    $dbConfig = [
        'host' => 'localhost',
        'port' => 3306,
        'dbname' => '9******8',
        'charset' => 'utf8mb4',
        'user' => '9******7',
        'pass' => 'T******!',
    ];
    
    // Подключение к базе данных
    try {
        $dsn = "mysql:host={$dbConfig['host']};port={$dbConfig['port']};dbname={$dbConfig['dbname']};charset={$dbConfig['charset']}";
        $pdo = new PDO($dsn, $dbConfig['user'], $dbConfig['pass'], [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        ]);
    } catch (PDOException $e) {
        http_response_code(500);
        echo "Ошибка подключения к БД: " . $e->getMessage();
        exit;
    }
    
    // Заменить 'post_id' на правильное имя столбца, если нужно
    try {
        $stmt = $pdo->prepare("SELECT post_id FROM posts WHERE post_draft = 1 LIMIT 1");
        $stmt->execute();
        $draftPost = $stmt->fetch(PDO::FETCH_ASSOC);
    
        if ($draftPost) {
            $updateStmt = $pdo->prepare("UPDATE posts SET post_draft = 0 WHERE post_id = :id");
            $updateStmt->execute(['id' => $draftPost['post_id']]);
            echo "Пост с ID {$draftPost['post_id']} опубликован.";
        } else {
            echo "Нет постов в черновике.";
        }
    } catch (PDOException $e) {
        http_response_code(500);
        echo "Ошибка выполнения запроса: " . $e->getMessage();
    }
    ?>