要删除编辑锁弹出窗口,您可以尝试:
add_filter( 'wp_check_post_lock_window', '__return_zero' );
我不确定这是否可行,但是我检查了来源,wp_check_post_lock()
然后有以下几行:
...cut...
$time_window = apply_filters( 'wp_check_post_lock_window', 120 );
if ( $time && $time > time() - $time_window && $user != get_current_user_id() )
return $user;
return false;
...cut...
所以想法是改变,$time_window这样if条件才是false。
更新:
要将其应用到edit.php屏幕上,请使用自定义帖子类型beer,例如:
function wpse_120179()
{
if( 'beer' === get_current_screen()->post_type )
add_filter( 'wp_check_post_lock_window', '__return_zero' );
}
add_action( 'load-edit.php', 'wpse_120179' );
然后我们可以添加:
add_action( 'load-post.php', 'wpse_120179' );
同时将其删除post.php。
更多挖掘...
该功能 _admin_notice_post_locked()被定义只是下面的wp_set_post_lock()功能。它包含以下几行:
...cut...
if ( ! apply_filters( 'show_post_locked_dialog', true, $post, $user ) )
return;
...cut...
所以也可以尝试使用show_post_locked_dialog过滤器:
add_filter( 'show_post_locked_dialog', 'wpse_120179_close_dialog', 99, 3 );
function wpse_120179_close_dialog( $show, $post, $user )
{
if( 'beer' === $post->post_type )
return FALSE;
return $show;
}
post_lock尽管如此,知道合适的钩子还是很高兴的。