wordpress功能中的多个页面ID

时间:2014-07-27 07:07:46

标签: php wordpress

我有一个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;
    }
}  

2 个答案:

答案 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;
        }
    }
}