1. soru
function allow_subscribers_to_read_private_posts() {
    // 'subscriber' rolünü alalım
    $role = get_role('subscriber');
    if ( $role ) {
        $role->add_cap('read_private_posts');
        $role->add_cap('read_private_pages');
    }
}
add_action('init', 'allow_subscribers_to_read_private_posts', 11);
2. soru
function restrict_search_to_logged_in_users() {
    // Eğer şu an arama sayfasındaysak ve kullanıcı giriş yapmamışsa...
    if ( is_search() && ! is_user_logged_in() ) {
        // Login sayfasına yönlendirirken bir “login_message” parametresi ekliyoruz:
        $login_url = wp_login_url(); // İsterseniz buraya redirect_to için get_permalink() de ekleyebilirsiniz
        // Örneğin: $login_url = wp_login_url( get_permalink() );

        wp_redirect( add_query_arg( 'login_message', urlencode('Arama yapabilmek için lütfen giriş yapınız.'), $login_url ) );
        exit;
    }
}
add_action('template_redirect', 'restrict_search_to_logged_in_users');