在默认的WordPress后台文章批量操作中,只有编辑和移动到回收站才能通过文本方式添加自定义批量操作选项,比如添加批量将文章更改为草稿,自动为选中的文章添加自定义字段和值。将以下代码添加到当前主题函数模板functions.php中,最终效果将是:
第一步:在批量操作下拉列表中添加选项。
//在批处理操作的下拉列表中添加选项Add _ Filter(‘ bulk _ actions -edit -post ‘,’ zm _ my _ bulk _ actions ‘);函数zm _ my _ bulk _ actions($ bulk _ array){ $ bulk _ array & # 091;Zm_make_draft’] = ‘状态更改为草稿’;$ bulk _ array & # 091Zm_set_price’] = ‘添加自定义字段’;返回$ bulk _ array}默认是添加自定义批量操作、页面、评论、媒体等。对于文章。您可以将代码中的:bulk_actions-edit-post更改为:
向页面添加批量操作,请使用:bulk _ action-edit-page自定义文章类型:bulk _ action-edit-{cptname}自定义分类:bulk _ action -edit -{分类名称}。注释:bulk _ actions -edit -注释插件:bulk _ actions -插件用户:bulk _ actions -用户媒体:bulk _ actions -上传第二步:添加处理动作。
//处理执行add _ filter(‘ handle _ bulk _ actions -edit -post ‘,’ zm _ bulk _ action _ handler ‘,10,3);函数zm _ bulk _ action _ handler($ redirect,$doaction,$ object _ ids){ $ redirect = remove _ query _ arg(array(‘ zm _ make _ draft _ done ‘,’ zm_bulk_price_changed ‘),$ redirect);//更改为草稿if($do action = = ‘ zm _ make _ draft ‘){ foreach($object _ ids as $ post _ id){ WP _ update _ post(array(‘ id ‘ = > $ post _ id,’ post _ status ‘ = & gt汇票’//汇票));} $ redirect = add _ query _ arg(‘ zm _ make _ draft _ done ‘,count( $object_ids),$ redirect);}//添加自定义字段if($ do action = = ‘ zm _ set _ price ‘){ foreach($ object _ ids as $ post _ id){ update _ post _ meta($ post _ id,’ product _ price ‘,1000);//用户自定义字段名:product_price,value:1000 } $ redirect = add _ query _ arg(‘ zm _ bulk _ price _ changed ‘,count ($ object _ ids),$ redirect);} return $ redirect}第三步:添加处理后的提示文本。
//添加提示文本add _ action (‘admin _ notices ‘,’ zm _ bulk _ action _ notices ‘);函数zm _ bulk _ action _ notices(){//改为draft if(!空($ _ REQUEST & # 091zm _ make _ draft _ done ‘]){ echo ‘ & lt;div id=”message” class= “更新的通知是-可驳回” & gt& ltp & gt文章状态已更新。& lt/p & gt;& lt/div & gt;’;}//添加自定义字段,如果(!空($ _ REQUEST & # 091zm _ bulk _ price _ changed ‘]){ printf(‘ & lt;div id=”message” class= “更新的通知是-可驳回” & gt& lt“p & gt”。_n(‘有%s篇文章添加了价格自定义字段。’,’有%s篇文章添加了价格自定义字段’,intval($ _ REQUEST & # 091;zm_bulk_price_changed’]))。& lt/p & gt;& lt/div & gt;’,intval($ _ REQUEST & # 091;zm _ bulk _ price _ changed ‘]));}}以上代码只是起到一个吸玉的作用。具体怎么用,发挥你的想象力。