下面的代码我发布一次文章后,所见即所得输入框就看不到了,只是一个

服务器繁忙,请稍后再试。

时间: 2025-02-27T19:56:45


👤 用户

下面的代码我发布一次文章后,所见即所得输入框就看不到了,只是一个普通的内容输入框,帮我修复下:
<?php
// 加载 WordPress 环境
require_once(‘../wp-load.php’);

// 引入 Parsedown 库(用于解析 Markdown)
require_once ‘Parsedown.php’;

// 检查是否提交了表单
if ($_SERVER[‘REQUEST_METHOD’] === ‘POST’ && isset($_POST[‘title’])) {
// 检查 nonce 和用户权限
if (!isset($_POST[‘markdown_publish_nonce’]) || !wp_verify_nonce($_POST[‘markdown_publish_nonce’], ‘markdown_publish_action’)) {
echo ‘

安全验证失败,请重试。
‘;
} elseif (!current_user_can(‘publish_posts’)) {
echo ‘
你没有权限发布文章。
‘;
} else {
// 获取表单数据
$title = sanitize_text_field($_POST[‘title’]);
$category = isset($_POST[‘category’]) ? intval($_POST[‘category’]) : 0; // 分类 ID
$tags = isset($_POST[‘tags’]) ? sanitize_text_field($_POST[‘tags’]) : ‘’; // 标签
$mode = isset($_POST[‘mode’]) ? sanitize_text_field($_POST[‘mode’]) : ‘wysiwyg’; // 发布模式

    // 根据发布模式处理内容
    if ($mode === 'wysiwyg') {
        $content = wp_kses_post($_POST['content']); // 所见即所得模式
    } elseif ($mode === 'markdown2html') {
        $markdown = $_POST['markdown'];
        $parsedown = new Parsedown();
        $content = $parsedown->text($markdown); // Markdown 转 HTML
    } elseif ($mode === 'markdown') {
        $content = $_POST['markdown']; // 直接发布 Markdown
    } else {
        echo '<div class="error">无效的发布模式。</div>';
        return;
    }

    // 发布文章
    $post_id = wp_insert_post([
        'post_title'   => $title,
        'post_content' => $content,
        'post_status'  => 'publish', // 直接发布
        'post_author'  => get_current_user_id(), // 当前用户为作者
        'post_category' => [$category], // 分配分类
    ]);

    if ($post_id) {
        // 分配标签
        if (!empty($tags)) {
            wp_set_post_tags($post_id, $tags);
        }

        echo '<div class="success">文章发布成功!<a href="' . get_permalink($post_id) . '">查看文章</a></div>';
    } else {
        echo '<div class="error">文章发布失败,请重试。</div>';
    }
}

}

// 获取所有分类
$categories = get_categories([‘hide_empty’ => false]);
?>

文章发布工具