我可以在 wordpress 中为我的自定义字段编写自定义批量操作吗?如果是,有什么方法可以做到这一点?
Can i write custom bulk action for my custom fields in wordpress? if yes, what are the ways to do that?
我在 wordpress 网站上工作,动态生成着陆页。我在这些着陆页上使用了价格、背景图片等自定义字段。现在我想为那些页面创建一个自定义批量操作,我可以在其中一次更新所有登录页面的价格字段。现在我如何为此创建批量操作。
这是开始的代码:
add_action('admin_footer-edit.php', 'custom_bulk_admin_footer');
function custom_bulk_admin_footer() {
global $post_type;
if($post_type == 'post') {
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('<option>').val('edit_custom_field...').text('<?php _e('Update custo....')?>').appendTo("select[name='udpate...action1']");
jQuery('<option>').val('edit_custom_field...').text('<?php _e('Update custo....')?>').appendTo("select[name='udpate...action2']");
});
</script>
<?php
}
}
add_action('load-edit.php', 'custom_bulk_action');
function custom_bulk_action() {
// ...
// 1. get the action
$wp_list_table = _get_list_table('WP_Posts_List_Table');
$action = $wp_list_table->current_action();
// ...
// 2. security check
check_admin_referer('bulk-posts');
// ...
switch($action) {
// 3. Perform the action
case 'export':
// if we set up user permissions/capabilities, the code might look like:
//if ( !current_user_can($post_type_object->cap->export_post, $post_id) )
// pp_die( __('You are not allowed to export this post.') );
$exported = 0;
foreach( $post_ids as $post_id ) {
if ( !$this->perform_export($post_id) )
wp_die( __('Error exporting post.') );
$exported++;
}
// build the redirect url
$sendback = add_query_arg( array('exported' => $exported, 'ids' => join(',', $post_ids) ), $sendback );
break;
default: return;
}
// ...
// 4. Redirect client
wp_redirect($sendback);
exit();
}
我在 wordpress 网站上工作,动态生成着陆页。我在这些着陆页上使用了价格、背景图片等自定义字段。现在我想为那些页面创建一个自定义批量操作,我可以在其中一次更新所有登录页面的价格字段。现在我如何为此创建批量操作。
这是开始的代码:
add_action('admin_footer-edit.php', 'custom_bulk_admin_footer');
function custom_bulk_admin_footer() {
global $post_type;
if($post_type == 'post') {
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('<option>').val('edit_custom_field...').text('<?php _e('Update custo....')?>').appendTo("select[name='udpate...action1']");
jQuery('<option>').val('edit_custom_field...').text('<?php _e('Update custo....')?>').appendTo("select[name='udpate...action2']");
});
</script>
<?php
}
}
add_action('load-edit.php', 'custom_bulk_action');
function custom_bulk_action() {
// ...
// 1. get the action
$wp_list_table = _get_list_table('WP_Posts_List_Table');
$action = $wp_list_table->current_action();
// ...
// 2. security check
check_admin_referer('bulk-posts');
// ...
switch($action) {
// 3. Perform the action
case 'export':
// if we set up user permissions/capabilities, the code might look like:
//if ( !current_user_can($post_type_object->cap->export_post, $post_id) )
// pp_die( __('You are not allowed to export this post.') );
$exported = 0;
foreach( $post_ids as $post_id ) {
if ( !$this->perform_export($post_id) )
wp_die( __('Error exporting post.') );
$exported++;
}
// build the redirect url
$sendback = add_query_arg( array('exported' => $exported, 'ids' => join(',', $post_ids) ), $sendback );
break;
default: return;
}
// ...
// 4. Redirect client
wp_redirect($sendback);
exit();
}