首先我们找到主题的 functions.php 文件或者任意一个插件的 php 文件,在其末尾加入如下 PHP 代码,用以新增批量操作功能入口。
<?php
//添加下拉列表选项
add_action( 'bulk_edit_custom_box', 'dmd_bulk_edit_fields', 10, 2 );
function dmd_bulk_edit_fields( $column_name, $post_type ) {
switch( $column_name ) {
case 'test': {
?>
<fieldset class="inline-edit-col-left">
<div class="inline-edit-col">
<label>
<span class="title">产品ID</span>
<input type="text" name="test">
</label>
</div>
<?php
break;
}
}
}
是不是觉得很熟悉,前面快速编辑我们使用了 quick_edit_custom_box 动作钩子来添加自定义字段到快速编辑面板中,批量操作使用的是 bulk_edit_custom_box 钩子。
保存修改内容也和快速编辑差不多,甚至更简单些。保存修改内容需要借助 save_post 钩子来实现,在接收修改内容的时候不再是 _POST 而是 _REQUEST,就这一个小差别。
//保存批量修改
add_action( 'save_post', 'dmd_bulk_edit_save' );
function dmd_bulk_edit_save( $post_id ){
// check bulk edit nonce
if ( ! wp_verify_nonce( $_REQUEST[ '_wpnonce' ], 'bulk-posts' ) ) {
return;
}
// update the test
$test= ! empty( $_REQUEST[ 'test' ] ) ? absint( $_REQUEST[ 'test' ] ) : 0;
update_post_meta( $post_id, 'test', $test);
}
搞定,打开你的 wordpress 后台,不出意外你应该能看到效果了。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!