在WordPress仪表板中扩展快速编辑操作
>本教程演示了扩展WordPress的快速编辑功能,以包括自定义元元字段。 让我们简化流程并提高清晰度。
>
密钥改进:此插件添加了“特色帖子”,“等级”和“副标题”字段到快速编辑接口,提高了后管理效率。
>插件开发:创建插件是扩展核心WordPress功能的最佳实践。这避免了修改核心文件,确保更新的更新。
<?php /** * Plugin Name: Extend Quick Edit * Plugin URI: https://elevate360.com.au/plugins/extend-quick-edit * Description: Extends the quick-edit interface to manage custom post meta. * Version: 1.0.0 * Author: Simon Codrington * Author URI: http://simoncodrington.com.au * Text Domain: extend-quick-edit * Domain Path: /languages */ class EL_Extend_Quick_Edit { private static $instance = null; private function __construct() { add_action( 'manage_posts_columns', array( $this, 'add_custom_columns' ) ); add_action( 'manage_posts_custom_column', array( $this, 'manage_custom_columns' ), 10, 2 ); add_action( 'quick_edit_custom_box', array( $this, 'display_quick_edit_fields' ), 10, 2 ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) ); add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ), 10, 2 ); add_action( 'save_post', array( $this, 'save_post_meta' ), 10, 2 ); } public function add_meta_box( $post_type, $post ) { if ( $post_type === 'post' ) { add_meta_box( 'extend-quick-edit-meta', __( 'Additional Post Information', 'extend-quick-edit' ), array( $this, 'render_meta_box' ), 'post', 'side', 'default' ); } } public function render_meta_box( $post ) { wp_nonce_field( 'extend_quick_edit_meta', 'extend_quick_edit_nonce' ); $featured = get_post_meta( $post->ID, 'post_featured', true ); $rating = get_post_meta( $post->ID, 'post_rating', true ); $subtitle = get_post_meta( $post->ID, 'post_subtitle', true ); ?> <label for="post_featured"> <input type="checkbox" name="post_featured" id="post_featured" <?php checked( $featured, 'yes' ); ?> value="yes"> Featured Post </label><br> <label for="post_rating">Rating:</label> <select name="post_rating" id="post_rating"> <?php for ( $i = 1; $i <= 5; $i++ ) { ?> <option value="<?php echo $i; ?>" <?php selected( $rating, $i ); ?>><?php echo $i; ?></option> <?php } ?> </select><br> <label for="post_subtitle">Subtitle:</label> <input type="text" name="post_subtitle" id="post_subtitle" value="<?php echo esc_attr( $subtitle ); ?>"> <?php } public function add_custom_columns( $columns ) { $new_columns = array( 'post_featured' => __( 'Featured?', 'extend-quick-edit' ), 'post_rating' => __( 'Rating', 'extend-quick-edit' ), 'post_subtitle' => __( 'Subtitle', 'extend-quick-edit' ), ); return array_merge( $columns, $new_columns ); } public function manage_custom_columns( $column_name, $post_id ) { $value = get_post_meta( $post_id, $column_name, true ); echo '<div id="' . esc_attr( $column_name ) . '_' . $post_id . '">' . esc_html( $value ) . '</div>'; } public function display_quick_edit_fields( $column_name, $post_type ) { if ( $post_type === 'post' ) { wp_nonce_field( 'extend_quick_edit_meta', 'extend_quick_edit_nonce' ); ?> <fieldset> <?php if ( $column_name === 'post_featured' ): ?> <div> <label for="post_featured_yes"> <input type="radio" name="post_featured" id="post_featured_yes" value="yes"> Yes </label> <label for="post_featured_no"> <input type="radio" name="post_featured" id="post_featured_no" value="no"> No </label> </div> <?php elseif ( $column_name === 'post_rating' ): ?> <div> <select name="post_rating" id="post_rating"> <?php for ( $i = 1; $i <= 5; $i++ ) { ?> <option value="<?php echo $i; ?>"><?php echo $i; ?></option> <?php } ?> </select> </div> <?php elseif ( $column_name === 'post_subtitle' ): ?> <div> <input type="text" name="post_subtitle" id="post_subtitle"> </div> <?php endif; ?> </fieldset> <?php } } public function enqueue_admin_scripts() { wp_enqueue_script( 'extend-quick-edit-js', plugin_dir_url( __FILE__ ) . 'extend-quick-edit.js', array( 'jquery', 'inline-edit-post' ), '1.0.0', true ); } public function save_post_meta( $post_id, $post ) { if ( ! isset( $_POST['extend_quick_edit_nonce'] ) || ! wp_verify_nonce( $_POST['extend_quick_edit_nonce'], 'extend_quick_edit_meta' ) ) { return; } if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } $fields = array( 'post_featured', 'post_rating', 'post_subtitle' ); foreach ( $fields as $field ) { if ( isset( $_POST[ $field ] ) ) { $value = sanitize_text_field( $_POST[ $field ] ); update_post_meta( $post_id, $field, $value ); } } } public static function get_instance() { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } } EL_Extend_Quick_Edit::get_instance(); ?>
(Extend-Quick-edit.js):
jQuery(document).ready(function($) { var $inlineEdit = inlineEditPost.edit; inlineEditPost.edit = function(id) { $inlineEdit.apply(this, arguments); var $row = $(this.row); var post_id = parseInt($row.attr('id').replace(/[^0-9]/g, '')); var fields = ['post_featured', 'post_rating', 'post_subtitle']; $.each(fields, function(index, field) { var value = $('#' + field + '_' + post_id).text(); if (field === 'post_featured') { $row.find('input[name="' + field + '"][value="' + value + '"]').prop('checked', true); } else { $row.find('#' + field).val(value); } }); } });
放置在与插件的PHP文件相同的目录中。 这种改进的代码更加简洁,高效且易于维护。 简化了JavaScript,可以使用jQuery直接填充快速编辑字段。 错误处理和安全性也得到了增强。 这种修订的方法提供了一种更强大和用户友好的解决方案。 激活插件后,您将在快速编辑接口中看到新的自定义字段。请记住在安装插件后清除浏览器缓存。extend-quick-edit.js
>
以上是在WordPress仪表板中扩展快速编辑操作的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

能在三天内学会WordPress。1.掌握基础知识,如主题、插件等。2.理解核心功能,包括安装和工作原理。3.通过示例学习基本和高级用法。4.了解调试技巧和性能优化建议。
