代码实现为 WordPress 后台文章添加自定义批量操作

默认 WordPress 后台文章批量操作中,只有编辑和移动到回收站,可以按文本方法添加自定义批量操作选项,例如添加批量将文章J 5 – B \ 9 C ~改为草稿和自动为选中的文章添加自定义字段和值。将下面代码添加到当前主题函数模板 functions.php 中,最终效果:

第一步h ~ ] ;

在批量操作下拉列表中添加选项。

// 在批量操作下拉列表中添加选项
add_filter( 'bulk_actions-edit-post', 'zm_my_bulk_actions' );
function zm_my_bulk_actions( $bulk_array ) {
$bulk_array['zm_make_draft'] = '状态改为草稿';
$bulk_array['zm_set_price'] = '添加自定义字段 ';
return $bulk_array;
}

默认是为文章添加自定义批量操作,页面、评论、媒体等,可以将代码中的:bulk_actions-edit-post 改为:

为页面添加批量操作,请使用:bulk_actions-edit-page
自定义文章类型:bulk_actions-edit-{CPT NAME}
自定义分类法:bulk_actions-edit-{TAXONOMY NAME}
评论:bulk_actions-edit-comments
插件:bulk_actions-plugins
用户:bulk_actions-users
媒体:bulk_actions-upload

第二步

添加处理动作

// 处理执行
add_filter( 'handle_bulk_actions-edit-post', 'zm_bulk_action_handler', 10, 3 );
function zm_bulk_action_handler( $redirect, $doaction, $object_ids ) {
$redirect = remove_query_arg( array( 'zm_make_draft_done', 'zm_bulk_price_changed' ), $redirect );
// 改为草稿
if ( $doaction == 'zm_make_draft' ) {
foreach ( $object_ids as $post_id ) {
wp_update_post( array(
'ID' => $post_id,
'post_status' => 'draft'// 草稿
) );
}
$redirect = add_query_arg( 'zm_make_draft_done', count( $object_ids ), $redirect );
}
// 添加自定义字段
if ( $doaction == 'zm_set_price' ) {
foreach ( $object_ids as $post_id ) {
update_post_meta( $post_id, 'product_price', 1000 );// 自定义字段名称:product_price,值:1000
}
$redirect = add_query_arg( 'zm_bulk_price_changed', count( $object_ids ), $redirect );
}
return $redirect;
}

第三步

添加处理后F v m z ( R )的提示文字

// 添加提示文字
add_action( 'admin_notices', 'zm_bulk_action_notices' );
function zm_bulk_action_notices() {
// 改为草稿
if ( ! empty( $_REQUEST['zm_make_draft_done'] ) ) {
echo '<div id="message" class="updated notice is-dismissible">
    			<p>文章状态已更新。</p>
    		</div>';
}
// 添加自定义字段
if( ! empty( $_REQUEST['zm_bulk_price_changed'] ) ) {
printf( '<div id="message" class="updated notice is-dismissible"><p>' .
_n( '有 %s 文章添加了价格自定义字段。',
'有 %s 文章添加了价格自定义字段。',
intval( $_REQUEST['zm_bulk_price_changed'] )
) . '</p></div>', intval( $_REQUEST['zm_bulk_price_changed'] ) );
}
}

上面代码只起个抛砖引玉的作用,具体怎么使用,发挥你的想像力吧I d H y } Z S Z Y

给TA打赏
共{{data.count}}人
人已打赏
CMS教程

WordPress 纯代码添加 Hreflang Tag 标签

2022-4-29 10:01:25

CMS教程

WordPress 分类归档排除子分类文章

2022-4-29 10:04:18

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索