我查看了Wordpress的核心代码,找不到任何真正有用的东西可以在post密码上添加过滤器。
你可以用过滤器wp_insert_post_empty_content
, 用于检查岗位必填字段是否设置(如:职务)。
下面是一个如何使用它的示例:
function myfunc_password_policy( $maybe_empty, $postarr ) {
$result = $maybe_empty;
// is the value of the field $postarr[\'post_password\'] complicated enough?
// ...
return $result;
}
add_filter( \'wp_insert_post_empty_content\', \'myfunc_password_policy\', 9999, 2);
问题是,如果密码被拒绝,管理员中不会显示相关错误消息。
另一种方法可能是使用Javascript钩住click
上的事件publish/update
按钮并发送带有密码字段值的ajax请求:
function myfunc_check_password_policy(){
global $post;
if(\'post\' === $post->post_type){
echo "
<script>
jQuery(document).ready(function($){
//Click handler - you might have to bind this click event another way
$(\'input#publish, input#save-post\').on(\'click\', function(){
var password_value = $(\'#post_password\').val();
var ajax_url = \'" . admin_url( \'admin-ajax.php\' ) . "\';
// send an ajax request to check if the password
$.ajax(
ajax_url,
{
action:\'check_protected_post_password\',
// ...
}
);
});
});
</script>";
}
}
add_action(\'admin_head-post.php\', \'myfunc_check_password_policy\');
add_action(\'admin_head-post-new.php\', \'myfunc_check_password_policy\');
这些代码示例还没有经过测试,显然需要一些改进,但您应该了解这一点。
这些是我能想到的解决你问题的可能性。祝你好运:)