-
-
Save ruman/9349991 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// @ref http://rachelcarden.com/2012/03/manage-wordpress-posts-using-bulk-edit-and-quick-edit/ | |
(function($) { | |
// we create a copy of the WP inline edit post function | |
var $wp_inline_edit = inlineEditPost.edit; | |
// and then we overwrite the function with our own code | |
inlineEditPost.edit = function( id ) { | |
// "call" the original WP edit function | |
// we don't want to leave WordPress hanging | |
$wp_inline_edit.apply( this, arguments ); | |
// now we take care of our business | |
// get the post ID | |
var $post_id = 0; | |
if ( typeof( id ) == 'object' ) | |
$post_id = parseInt( this.getId( id ) ); | |
if ( $post_id > 0 ) { | |
// define the edit row | |
var $edit_row = $( '#edit-' + $post_id ); | |
var $post_row = $( '#post-' + $post_id ); | |
// get the data | |
var $additional_copies = $( '.column-additional_copies', $post_row ).html(); | |
var $main_credits = $( '.column-main_credits', $post_row ).html(); | |
// populate the data | |
$( ':input[name="additional_copies"]', $edit_row ).val( $additional_copies ); | |
$( ':input[name="main_credits"]', $edit_row ).val( $main_credits ); | |
} | |
}; | |
$( '#bulk_edit' ).live( 'click', function() { | |
// define the bulk edit row | |
var $bulk_row = $( '#bulk-edit' ); | |
// get the selected post ids that are being edited | |
var $post_ids = new Array(); | |
$bulk_row.find( '#bulk-titles' ).children().each( function() { | |
$post_ids.push( $( this ).attr( 'id' ).replace( /^(ttle)/i, '' ) ); | |
}); | |
// get the data | |
var $additional_copies = $bulk_row.find( 'textarea[name="additional_copies"]' ).val(); | |
var $main_credits = $bulk_row.find( 'textarea[name="main_credits"]' ).val(); | |
// save the data | |
$.ajax({ | |
url: ajaxurl, // this is a variable that WordPress has already defined for us | |
type: 'POST', | |
async: false, | |
cache: false, | |
data: { | |
action: 'save_bulk_edit_video', // this is the name of our WP AJAX function that we'll set up next | |
post_ids: $post_ids, // and these are the 2 parameters we're passing to our function | |
additional_copies: $additional_copies, | |
main_credits: $main_credits | |
} | |
}); | |
}); | |
})(jQuery); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Quick Edit and Bulk Edit helper for Media Burn video records | |
* | |
* @author Michael Cannon <[email protected]> | |
* @ref http://rachelcarden.com/2012/03/manage-wordpress-posts-using-bulk-edit-and-quick-edit/ | |
*/ | |
add_action( 'bulk_edit_custom_box', 'quick_edit_custom_box_video', 10, 2 ); | |
add_action( 'quick_edit_custom_box', 'quick_edit_custom_box_video', 10, 2 ); | |
function quick_edit_custom_box_video( $column_name, $post_type ) { | |
$slug = 'video'; | |
if ( $slug !== $post_type ) | |
return; | |
if ( ! in_array( $column_name, array( 'additional_copies', 'main_credits' ) ) ) | |
return; | |
static $printNonce = true; | |
if ( $printNonce ) { | |
$printNonce = false; | |
wp_nonce_field( plugin_basename( __FILE__ ), 'video_edit_nonce' ); | |
} | |
?> | |
<fieldset class="inline-edit-col-right inline-edit-video"> | |
<div class="inline-edit-col inline-edit-<?php echo $column_name ?>"> | |
<label class="inline-edit-group"> | |
<?php | |
switch ( $column_name ) { | |
case 'additional_copies': | |
?> | |
<span class="title">Additional Copies</span> | |
<textarea cols="22" rows="1" name="additional_copies" autocomplete="off"></textarea> | |
<?php | |
break; | |
case 'main_credits': | |
?> | |
<span class="title">Main Credits</span> | |
<textarea cols="22" rows="1" name="main_credits" autocomplete="off"></textarea> | |
<?php | |
break; | |
} | |
?> | |
</label> | |
</div> | |
</fieldset> | |
<?php | |
} | |
add_action( 'save_post', 'save_video_meta' ); | |
function save_video_meta( $post_id ) { | |
// TODO make $slug static | |
$slug = 'video'; | |
if ( $slug !== $_POST['post_type'] ) | |
return; | |
if ( !current_user_can( 'edit_post', $post_id ) ) | |
return; | |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) | |
return; | |
if ( isset( $post->post_type ) && 'revision' == $post->post_type ) | |
return; | |
$_POST += array( "{$slug}_edit_nonce" => '' ); | |
if ( !wp_verify_nonce( $_POST["{$slug}_edit_nonce"], plugin_basename( __FILE__ ) ) ) | |
return; | |
if ( isset( $_REQUEST['additional_copies'] ) ) | |
update_post_meta( $post_id, 'additional_copies', wp_kses_post( $_REQUEST['additional_copies'] ) ); | |
if ( isset( $_REQUEST['main_credits'] ) ) | |
update_post_meta( $post_id, 'main_credits', wp_kses_post( $_REQUEST['main_credits'] ) ); | |
} | |
add_action( 'admin_print_scripts-edit.php', 'admin_edit_video_foot' ); | |
function admin_edit_video_foot() { | |
$slug = 'video'; | |
// load only when editing a video | |
if ( ( isset( $_GET['page'] ) && $slug == $_GET['page'] ) | |
|| ( isset( $_GET['post_type'] ) && $slug == $_GET['post_type'] ) ) { | |
wp_enqueue_script( 'admin-quick-edit-video', get_template_directory_uri() . '/functions/user/custom/fitv/quick_edit.js', array( 'jquery', 'inline-edit-post' ), '', true ); | |
} | |
} | |
add_action( 'wp_ajax_save_bulk_edit_video', 'save_bulk_edit_video' ); | |
function save_bulk_edit_video() { | |
$post_ids = ( ! empty( $_POST[ 'post_ids' ] ) ) ? $_POST[ 'post_ids' ] : array(); | |
$additional_copies = ( ! empty( $_POST[ 'additional_copies' ] ) ) ? wp_kses_post( $_POST[ 'additional_copies' ] ) : null; | |
$main_credits = ( ! empty( $_POST[ 'main_credits' ] ) ) ? wp_kses_post( $_POST[ 'main_credits' ] ) : null; | |
if ( ! empty( $post_ids ) && is_array( $post_ids ) ) { | |
foreach ( $post_ids as $post_id ) { | |
update_post_meta( $post_id, 'additional_copies', $additional_copies ); | |
update_post_meta( $post_id, 'main_credits', $main_credits ); | |
} | |
} | |
die(); | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment