受密码保护的POST策略

时间:2018-03-14 作者:Samuel

我正在寻找一种方法来添加关于POST密码的策略。

Password specifications :

12 字符长度,1 大写字母,1 小写字母,1 数字和1个特殊字符。

是否有一个用于附加功能的挂钩。php来做吗?

这个问题是关于受密码保护的帖子,而不是用户密码。

1 个回复
SO网友:Mike

我查看了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\');
这些代码示例还没有经过测试,显然需要一些改进,但您应该了解这一点。

这些是我能想到的解决你问题的可能性。祝你好运:)

结束

相关推荐

404 of wp-admin pages

我有一个网站出现了问题(几个月来一直没有被修改过,所以没有做任何修改来破坏它)登录时,登录页面未设置样式,位于左上角。我可以正常登录,但当我尝试访问仪表板或任何/wp admin/。。。我得到404页。(网站加载公共内容罚款)我已经尽我所能搜索并尝试了一切。禁用所有插件,默认为menew。htaccessphpmyadmin重命名站点地址以前有没有人经历过这种情况,有没有其他想法?