我也在寻找这个选项/功能。我偶然发现this guys 我相信这个解释回答了大部分问题。我正在实现这一点,所以我不能说作为wordpress noob(不是php!)有多准确,我知道这是一个自定义框,但您可以使用the_excerpt()
fn或来自$post对象-etc。
因此,要在“快速编辑”部分提供我们想要的选项,我们需要首先将其作为“自定义”列添加到帖子/页面列表视图中。
/*
* New columns
*/
add_filter(\'manage_post_posts_columns\', \'misha_featured_columns\');
// the above hook will add columns only for default \'post\' post type, for CPT:
// manage_{POST TYPE NAME}_posts_columns
function misha_price_and_featured_columns( $column_array ) {
$column_array[\'featured\'] = \'Featured product\';
return $column_array;
}
/*
* Populate our new columns with data
*/
add_action(\'manage_posts_custom_column\', \'misha_populate_column\', 10, 2);
function misha_populate_column( $column_name, $id ) {
switch( $column_name ) :
case \'featured\': {
if( get_post_meta($id,\'product_featured\',true) == \'on\')
echo \'Yes\';
break;
}
endswitch;
}
然后我们可以将其添加到“快速编辑”部分。
/*
* quick_edit_custom_box allows to add HTML in Quick Edit
* Please note: it files for EACH column, so it is similar to manage_posts_custom_column
*/
add_action(\'quick_edit_custom_box\', \'misha_quick_edit_fields\', 10, 2);
function misha_quick_edit_fields( $column_name, $post_type ) {
switch( $column_name ) :
case \'featured\': {
echo \'<fieldset><label class="alignleft">
<input type="checkbox" name="featured">
<span class="checkbox-title">Featured product</span>
</label></fieldset>\';
break;
}
endswitch;
}
我们还需要一些代码来连接到save post,以便更新元数据。
/*
* Quick Edit Save
*/
add_action( \'save_post\', \'misha_quick_edit_save\' );
function misha_quick_edit_save( $post_id ){
if ( !current_user_can( \'edit_post\', $post_id ) ) {
return;
}
if ( !wp_verify_nonce( $_POST[\'misha_nonce\'], \'misha_q_edit_nonce\' ) ) {
return;
}
if ( isset( $_POST[\'featured\'] ) ) {
update_post_meta( $post_id, \'product_featured\', \'on\' );
} else {
update_post_meta( $post_id, \'product_featured\', \'\' );
}
}
最后,加载页面后,需要一些JavaScript(他使用jQuery)来填充字段数据。他将其放置在单独的文件中,并使用wp\\U排队加载:
add_action( \'admin_enqueue_scripts\', \'misha_enqueue_quick_edit_population\' );
function misha_enqueue_quick_edit_population( $pagehook ) {
// do nothing if we are not on the target pages
if ( \'edit.php\' != $pagehook ) {
return;
}
wp_enqueue_script( \'populatequickedit\', get_stylesheet_directory_uri() . \'/populate.js\', array( \'jquery\' ) );
}
JavaScript文件:
jQuery(function($){
var wp_inline_edit_function = inlineEditPost.edit;
inlineEditPost.edit = function( post_id ) {
wp_inline_edit_function.apply( this, arguments );
var id = 0;
if ( typeof( post_id ) == \'object\' ) { // if it is object, get the ID number
id = parseInt( this.getId( post_id ) );
}
if ( id > 0 ) {
// add rows to variables
var specific_post_edit_row = $( \'#edit-\' + id ),
specific_post_row = $( \'#post-\' + id ),
featured_product = false; // let\'s say by default checkbox is unchecked
if( $( \'.column-featured\', specific_post_row ).text() == \'Yes\' ) featured_product = true;
$( \':input[name="featured"]\', specific_post_edit_row ).prop(\'checked\', featured_product );
}
}
});
我已复制、粘贴(&P);编辑了他的原始代码以供参考,网站上的教程在代码中有注释,解释了它的用法等。我不知道这个人只是在谷歌搜索时看到了这篇文章和他们的文章。
最后,我认为可能需要指出的一件事是,save\\u post挂钩可能会干扰save\\u post已有的任何挂钩,我不确定快速编辑save\\u post是否会将摘录字段识别为标准字段,或者是否需要上面的挂钩?!