web-dev-qa-db-ja.com

ログインユーザーのパスワード保護されたページを無効にする

バックエンドユーザー(ログインユーザー)のパスワードで保護されたページを無効にするためにfunction.phpにフックを追加することは可能ですか?

私はビーバービルダーを使用していて、ページを変更したり投稿したりするときは、ビルダーにアクセスする前に必ずページのパスワードを入力する必要があります。

ありがとう。

4
sampaii

(一部の)ユーザーのパスワード後保護を無効にする

ログインしているユーザーのために post_password_required filter(4.7+)をオーバーライドすることができます。

add_filter( 'post_password_required', function( $returned, $post )
{
    // Override it for logged in users:
    if( $returned && is_user_logged_in() )
        $returned = false;

    return $returned;
}, 10, 2 );

または特定の機能を持つユーザーに対して無効にする(例:manage_options):

add_filter( 'post_password_required', function( $returned, $post )
{
    // Override it for users with the 'manage_options' capability
    if( $returned && current_user_can( 'manage_options' ) )
        $returned = false;

    return $returned;
}, 10, 2 );

特定の投稿タイプをターゲットに設定できます。

add_filter( 'post_password_required', function( $returned, $post )
{
    // Target protected posts only
    if( ! $returned )
        return $returned;

    // Target logged in users only
    if( ! is_user_logged_in() )
        return $returned;

    // Target 'page' post type only
   if( 'page' !== get_post_type( $post ) )
        return $returned;

   // Override 
   return false;

}, 10, 2 );

保護された投稿タイトルから「保護された」テキストを削除します

タイトルから先頭に追加されたProtectedを削除するには、 protected_title_format フィルタを使用して、ログインユーザーのprotected title formatを調整します。

add_filter( 'protected_title_format', function( $format, $post )
{
    if( is_user_logged_in() )
        $format = '%s';

    return $format;
}, 10, 2 );
4
birgire