承接 arraypress/wp-register-bulk-edit 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

arraypress/wp-register-bulk-edit

Composer 安装命令:

composer require arraypress/wp-register-bulk-edit

包简介

Lightweight library for registering custom bulk edit fields on WordPress post list tables.

README 文档

README

A lightweight library for registering custom bulk edit fields on WordPress post list tables.

Features

  • Simple API for registering bulk edit fields
  • Supports posts and custom post types
  • Automatic sanitization based on field type
  • Permission checking via capabilities
  • Multiple field types: text, textarea, number, select, checkbox, url, email
  • Callable options for dynamic select values
  • No dependencies

Installation

Install via Composer:

composer require arraypress/wp-register-bulk-edit

Usage

Basic Example

register_bulk_edit_fields( 'download', [
    'tax_class' => [
        'label'        => __( 'Tax Class', 'my-plugin' ),
        'type'         => 'select',
        'options'      => [
            ''  => __( '— Use Default —', 'my-plugin' ),
            '1' => __( 'Reduced Rate', 'my-plugin' ),
            '2' => __( 'Zero Rate', 'my-plugin' ),
        ],
        'meta_key'     => '_tax_class_id',
        'clear_option' => true,
    ],
    'sale_percent' => [
        'label'    => __( 'Sale Discount %', 'my-plugin' ),
        'type'     => 'number',
        'meta_key' => '_sale_percent',
        'min'      => 0,
        'max'      => 100,
        'step'     => 1,
    ],
]);

Field Configuration Options

Option Type Default Description
label string '' Field label displayed in the UI
type string 'text' Field type (see below)
description string '' Help text displayed below the field
options array|callable [] Options for select fields
meta_key string Field key The meta key to save to
min int|float|null null Minimum value for number fields
max int|float|null null Maximum value for number fields
step int|float|null null Step value for number fields
sanitize_callback callable|null null Custom sanitization callback
capability string 'edit_posts' Required capability to see/edit field
no_change bool true Show "— No Change —" option
clear_option bool false Show "— Clear —" option for select fields
attrs array [] Additional HTML attributes

Supported Field Types

Type Description Auto-Sanitization
text Standard text input sanitize_text_field()
textarea Multi-line text sanitize_textarea_field()
number Numeric input intval() or floatval() based on step
select Dropdown select Validates against options
checkbox Boolean toggle Cast to 0 or 1
url URL input esc_url_raw()
email Email input sanitize_email()

Dynamic Options

Use a callable to generate options dynamically:

register_bulk_edit_fields( 'product', [
    'category' => [
        'label'   => __( 'Category', 'my-plugin' ),
        'type'    => 'select',
        'options' => function() {
            $categories = get_terms( [
                'taxonomy'   => 'product_cat',
                'hide_empty' => false,
            ] );
            
            $options = [ '' => __( '— Select —', 'my-plugin' ) ];
            foreach ( $categories as $cat ) {
                $options[ $cat->term_id ] = $cat->name;
            }
            
            return $options;
        },
        'meta_key' => '_product_category',
    ],
]);

Multiple Post Types

register_bulk_edit_fields( [ 'post', 'page', 'product' ], [
    'featured' => [
        'label'    => __( 'Featured', 'my-plugin' ),
        'type'     => 'checkbox',
        'meta_key' => '_is_featured',
    ],
]);

Custom Sanitization

register_bulk_edit_fields( 'product', [
    'price' => [
        'label'             => __( 'Price', 'my-plugin' ),
        'type'              => 'number',
        'meta_key'          => '_price',
        'step'              => '0.01',
        'sanitize_callback' => function( $value ) {
            return round( floatval( $value ), 2 );
        },
    ],
]);

Requirements

  • PHP 7.4 or later
  • WordPress 5.0 or later

License

GPL-2.0-or-later

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2025-12-15