欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > wordpress教程 >
wordpress教程

WordPress 如何在文章列表页的快速编辑里面加上关键词输入框

(元素模板) / 2025-01-11 22:18

要在 WordPress 文章列表页的快速编辑(Quick Edit)功能中添加一个关键词输入框,可以通过以下步骤实现:

1. 添加关键词字段到快速编辑表单

你需要使用 WordPress 的 manage_posts_custom_column 和 quick_edit_custom_box 钩子。

2. 保存关键词字段的数据

使用 save_post 钩子保存用户在快速编辑中输入的数据。

以下是完整的代码示例:
 

<?php
// 在文章列表页的快速编辑中添加关键词输入框
function add_keywords_quick_edit($column_name, $post_type) {
    if ($column_name === 'keywords') {
        ?>
        <fieldset class="inline-edit-col-right">
            <div class="inline-edit-col">
                <label>
                    <span class="title">关键词</span>
                    <span class="input-text-wrap">
                        <input type="text" name="post_keywords" class="post_keywords" value="">
                    </span>
                </label>
            </div>
        </fieldset>
        <?php
    }
}
add_action('quick_edit_custom_box', 'add_keywords_quick_edit', 10, 2);

// 在文章列表页添加关键词列
function add_keywords_column($columns) {
    $columns['keywords'] = '关键词';
    return $columns;
}
add_filter('manage_posts_columns', 'add_keywords_column');

// 显示关键词字段的值
function show_keywords_column_content($column_name, $post_id) {
    if ($column_name === 'keywords') {
        $keywords = get_post_meta($post_id, '_post_keywords', true);
        echo esc_html($keywords);
    }
}
add_action('manage_posts_custom_column', 'show_keywords_column_content', 10, 2);

// 保存快速编辑中的关键词数据
function save_keywords_quick_edit($post_id) {
    if (isset($_POST['post_keywords'])) {
        $keywords = sanitize_text_field($_POST['post_keywords']);
        update_post_meta($post_id, '_post_keywords', $keywords);
    }
}
add_action('save_post', 'save_keywords_quick_edit');

// 在快速编辑中加载关键词数据
function enqueue_quick_edit_script($hook) {
    if ('edit.php' === $hook) {
        wp_enqueue_script(
            'quick-edit-keywords',
            get_template_directory_uri() . '/js/quick-edit-keywords.js',
            ['jquery'],
            '1.0',
            true
        );
    }
}
add_action('admin_enqueue_scripts', 'enqueue_quick_edit_script');

3. 添加 JavaScript 文件

创建一个名为 quick-edit-keywords.js 的文件,并添加以下代码,用于在快速编辑时加载现有的关键词数据:
 

jQuery(document).ready(function ($) {
    function setQuickEditKeywords(post_id) {
        var $row = $('#post-' + post_id),
            keywords = $row.find('.column-keywords').text().trim();

        $('input[name="post_keywords"]').val(keywords);
    }

    $(document).on('click', '.editinline', function () {
        var post_id = $(this).closest('tr').attr('id').replace('post-', '');
        setQuickEditKeywords(post_id);
    });
});

4. 将 JavaScript 文件放到主题目录

将 quick-edit-keywords.js 文件放到主题目录的 js 文件夹中,并确保路径与代码中 enqueue_quick_edit_script 函数的路径一致。

5. 检查结果

  • 在 WordPress 后台的文章列表页,应该可以看到新的“关键词”列。
  • 点击快速编辑后,可以看到“关键词”输入框,修改内容并保存后,数据会被正确保存到文章的自定义字段 _post_keywords 中。

备注

  • 如果需要进一步扩展功能,比如支持分类法或其他复杂字段,可以修改 get_post_meta 和 update_post_meta 部分。
  • 确保主题或插件的代码更新不会覆盖这些自定义功能。建议将代码放入子主题或定制插件中。
Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com