默认 WordPress 后台文章批量操作中,只有编辑和移动到回收站,可以按文本方法添加自定义批量操作选项,例如添加批量将文章改为草稿和自动为选中的文章添加自定义字段和值。将下面代码添加到当前主题函数模板 functions.php 中,最终效果:
第一步
在批量操作下拉列表中添加选项。
- // 在批量操作下拉列表中添加选项
- 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;
- }
第三步
添加处理后的提示文字
- // 添加提示文字
- 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'] ) );
- }
- }
上面代码只起个抛砖引玉的作用,具体怎么使用,发挥你的想像力吧。
文章標題:代码实现为 WordPress 后台文章添加自定义批量操作
文章連結:https://www.wuyanshuo.cn/792.html
更新時間:2022年4月24日
1、本站所有資源均不添加推廣檔案或浮水印,壓縮包內若有廣告檔案和浮水印請勿輕易相信。
2、本站資源均為兩層壓縮,第一層7z(尾碼若為wys,請自行修改為7z)有解壓密碼; 第二層zip或cbz,無解壓密碼,可直接使用漫畫類軟件程式查看; 詳情可參攷解壓教程。
3、本站大部分內容均收集於網絡! 若內容侵犯到您的權益,請發送郵件至:admin#wysacg.top我們將第一時間處理! 資源所需價格並非資源售賣價格,是收集、整理、編輯詳情以及本站運營的適當補貼,並且本站不提供任何免費技術支援。 所有資源僅限於參攷和學習,版權歸原作者所有!