我有一个wordpress功能,可以在尝试查看特定页面时将用户重定向到登录状态,并在登录后将其转移到该页面。
当我只放入一个页面ID时,该功能正常工作。
当我尝试输入一些页面ID时,应该将用户重定向到这些页面的任何一个登录,该功能将停止工作。
请帮助我解决这个问题。
add_action('template_redirect','wpmy_check_if_logged_in');
function wpmy_check_if_logged_in(){
$pageid = array (2295, 1589, 1031);
if(!is_user_logged_in() && is_page($pageid)) {
$url = wp_login_url( get_permalink( $pageid ) );
wp_redirect($url);
exit;
}
}
答案 0 :(得分:0)
在for循环中使用is_page()
:
$pages_id
是一个数组。
function is_in_pages($pages_id)
{
for($i = 0; $i < count($pages_id); $i++)
{
if(is_page($pages_id[$i]) == true)
{
return true;
}
}
return false;
}
答案 1 :(得分:0)
我不是使用ID重复调用is_page(),而是从全局$ post对象中获取ID并查看它是否在您的数组中:
add_action('template_redirect','wpmy_check_if_logged_in');
function wpmy_check_if_logged_in(){
$pageid = array (2295, 1589, 1031);
if(!is_user_logged_in() && is_page()) {
global $post;
if (in_array($post->ID, $pageid)) {
$url = wp_login_url( get_permalink( $post->ID ) );
wp_redirect($url);
exit;
}
}
}