首先我们找到主题的 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 后台,不出意外你应该能看到效果了。
-