admin管理员组文章数量:1122832
The WordPress codex for bulk_edit_custom_box
, along with this bulk edit example use the following piece of JavaScript to create an array of selected post IDs to send with the AJAX call that updates the posts.
$bulk_row.find( '#bulk-titles' ).children().each( function() {
$post_ids.push( $( this ).attr( 'id' ).replace( /^(ttle)/i, '' ) );
});
The full code surrounding this snippet is below.
My list tables have input fields for meta values, and the inline quick edit works successfully, but bulk edit fails. When debugging I found the $post_ids array is empty because there are no elements on my page with the ID #bulk-titles
.
So my question, where do the #bulk-titles
elements come from and why would my page not have them?
$( '#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 custom fields
var $item_thickness = $bulk_row.find( 'input[name="item_thickness"]' ).val();
var $item_width = $bulk_row.find( 'input[name="item_width"]' ).val();
var $item_length = $bulk_row.find( 'input[name="item_length"]' ).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: 'manage_wp_posts_using_bulk_quick_save_bulk_edit', // 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
item_thickness: $item_thickness,
item_width: $item_width,
item_length: $item_length
}
});
});
The WordPress codex for bulk_edit_custom_box
, along with this bulk edit example use the following piece of JavaScript to create an array of selected post IDs to send with the AJAX call that updates the posts.
$bulk_row.find( '#bulk-titles' ).children().each( function() {
$post_ids.push( $( this ).attr( 'id' ).replace( /^(ttle)/i, '' ) );
});
The full code surrounding this snippet is below.
My list tables have input fields for meta values, and the inline quick edit works successfully, but bulk edit fails. When debugging I found the $post_ids array is empty because there are no elements on my page with the ID #bulk-titles
.
So my question, where do the #bulk-titles
elements come from and why would my page not have them?
$( '#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 custom fields
var $item_thickness = $bulk_row.find( 'input[name="item_thickness"]' ).val();
var $item_width = $bulk_row.find( 'input[name="item_width"]' ).val();
var $item_length = $bulk_row.find( 'input[name="item_length"]' ).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: 'manage_wp_posts_using_bulk_quick_save_bulk_edit', // 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
item_thickness: $item_thickness,
item_width: $item_width,
item_length: $item_length
}
});
});
Share
Improve this question
asked Aug 3, 2015 at 7:55
AndrewAndrew
9199 silver badges20 bronze badges
1 Answer
Reset to default 0After searching through WordPress core I found the following on lines 1051 – 1057 of wp-admin/includes/class-wp-posts-list-table.php
if ( post_type_supports( $screen->post_type, 'title' ) ) :
if ( $bulk ) : ?>
<div id="bulk-title-div">
<div id="bulk-titles"></div>
</div>
<?php else : // $bulk ?>
So, in order for the #bulk-titles
element to be part of your admin list the post type your working with needs to support title
.
New custom posts types do support title
by default. My custom post types are not using titles so I had set supports => false
as an argument passed to register_post_type
call.
Not supplying the supports
argument or setting it to an array that includes title
as a member solved the bulk edit problem, and I hid the title on post edit page using CSS.
本文标签: adminGet the selected posts IDs to use in bulk edit AJAX call
版权声明:本文标题:admin - Get the selected posts IDs to use in bulk edit AJAX call 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736287646a1927925.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论