Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
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');