主页/WordPress笔记/博客文章/综合文章/如何在WordPress中保存更改而不发布

如何在WordPress中保存更改而不发布

Bug编译狮

Bug编译狮

在WordPress中,你可以通过以下步骤来保存更改而不立即发布:

  1. 编辑页面或文章:首先,在WordPress后台的“写作”部分找到你需要修改的内容。
  2. 点击编辑按钮:点击页面或文章旁边的小笔图标(通常是蓝色的),这会打开编辑模式。
  3. 输入新内容:在这里你可以添加、删除或者修改任何文本和/或代码。
  4. 保存更改:完成编辑后,点击顶部菜单栏中的“保存草稿”,而不是“发布”。这样可以暂时保存你的更改,而不会立刻更新到网站上。

示例代码

假设你想在WordPress中添加一个简单的CSS样式以改变文章标题的颜色,你可以这样做:

<!-- 添加一个class="custom-color"到每个需要颜色变化的文章 -->
<div class="custom-color">
    <h1>Title of the Article</h1>
</div>

/* 在functions.php文件中添加以下CSS */
.add-on .custom-color h1 {
    color: #ff0000; /* 设置为红色 */
}

使用步骤及效果

  1. 创建一个新的文章:登录到WordPress后台,选择“写作”,然后点击“新建文章”。
  2. 插入HTML代码:在编辑模式下,复制并粘贴上述代码到文章中,确保<div>标签内有<h1>标签作为文章标题。
  3. 保存草稿:点击顶部菜单栏中的“保存草稿”。

此时,你的文章标题已经改变了颜色,但还没有被发布到网站上。如果你现在点击“发布”按钮,你的更改将会被应用到整个网站。

这个方法非常实用,尤其是在开发过程中,允许你先在本地测试新的功能或设计,然后再决定是否要将其发布到正式网站上。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

要使WordPress中的更改不立即发布,请遵循以下步骤:

步骤 1: 创建自定义功能

首先,在WordPress的主题或插件文件夹中创建一个名为 functions.php 的新文件。

// 自定义功能文件
function my_custom_save_draft() {
    if (isset($_POST['submit'])) {
        // 检查提交的数据是否包含特定字段
        $draft_id = isset($_GET['id']) ? $_GET['id'] : '';

        // 检查是否已存在此ID的Draft记录
        if ($draft_id && wp_is_post_revision($draft_id)) {
            // 更新或修改Draft
            update_post_meta($draft_id, 'my_custom_field', $_POST['custom_field']);

            // 删除旧的Draft版本
            delete_post_meta($draft_id, 'draft');
        } else {
            // 如果不存在则新建Draft
            $new_draft = array(
                'post_title' => sanitize_text_field($_POST['title']),
                'post_content' => sanitize_text_field($_POST['content'])
            );
            wp_insert_post($new_draft);
            add_post_to_draft_array(wp_get_post_id_by_post_name('new_draft'));
        }
    }
}
add_action('wp_ajax_my_custom_save_draft', 'my_custom_save_draft');

步骤 2: 编辑WordPress主题

接下来,编辑您的WordPress主题的 functions.php 文件以使用自定义函数。添加上述 functions.php 文件到您当前的WordPress主题目录下。

// 新增自定义功能
function custom_function($hook) {
    global $post;

    if ('page' === $hook) {
        $post_id = get_queried_object_id();
        $post_type = get_post_type_object(get_post_type($post_id));
        $fields = apply_filters('the_fields', $post_type->fields);

        if (!empty($fields['custom_field'])) {
            $field_value = isset($_POST[$fields['custom_field']]) ? sanitize_text_field($_POST[$fields['custom_field']]) : '';
            $post->post_status = 'draft';
            update_post_meta($post_id, 'custom_field', $field_value);
            update_post_metadata($post_id, 'custom_field', $field_value);
        }
    }

    return $post;
}

add_filter('pre_get_posts', 'custom_function');

步骤 3: 测试和部署

现在,保存更改并测试网站。检查是否有任何新的自定义字段被设置。

示例代码:

  • 测试页面:访问 /admin/edit.php?post_type=new_draft
  • 更新页面:在新插入的页面上输入数据并点击保存(<input type="submit" value="Save Draft">)。

注意事项

  • 在实际生产环境中,应确保在开发阶段对自定义功能进行充分测试,避免影响现有用户体验。
  • 使用自定义功能时请确保遵守WordPress的版权政策,尊重其他用户的权益。

通过以上步骤,您可以为WordPress创建一个自定义功能,以便在保存更改时不立即发布。这有助于保护网站的隐私性和安全性,同时允许管理员控制哪些内容可以立即发布。