要在 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 部分。
- 确保主题或插件的代码更新不会覆盖这些自定义功能。建议将代码放入子主题或定制插件中。