如何根据特定页面自定义字段值和用户名重定向到主页

时间:2018-04-30 作者:Riffaz Starr

我有一些页面,特定用户只应该访问这些特定页面。

因此,我创建了一个自定义字段,将用户名分配给特定页面。自定义字段:http://take.ms/tCCWQ

如果当前用户名和自定义字段值不相同,则应将页面重定向到其他页面。

我把这一页放在页脚。php

if( is_page() ) { // run only if it is a page
    $current_user = wp_get_current_user();

    global $wp_query;
    $postid = $wp_query->post->ID;
    $getClient = get_post_meta($postid, \'clientName\', true);

    $clientName = get_post_meta( $post->ID, \'clientName\', true ); 
    if  (!empty( $clientName )) { // run only if the specific custom field has value
            if ($getClient !== $current_user){ // if the current user and the custom feilds vlaues are NOT same
                echo \'<br/>this page is NOT assigned for you\';
                header("Location: https://www.google.com"); /* if not same then Redirect */
                exit();
            }
        }
}
只有在页面具有此自定义字段值的页面中,我才能在页脚中看到此消息。因此,逻辑工作得很好,但问题是重定向不起作用。如果当前用户名和自定义字段为not 同样,它应该被重定向到另一个页面。

为什么它不起作用?我怎样才能解决这个问题?

如果我能用这个就好了login_redirect 筛选或使用wp_redirect($url);

1 个回复
最合适的回答,由SO网友:Orlando P. 整理而成

发送标题后(输出已写入屏幕),您不能使用wp_redirect() 尝试将代码放置在header.php 在任何输出之前,看看是否工作得足够好。

如果不是,你将不得不\'send_headers\', \'template_redirect\', 或\'init\' 并在任何输出之前检查值和重定向。

结束

相关推荐

Stuck In a Redirect Loop

我正在尝试构建一个代码,让非成员重定向到登录页。不幸的是,我构建的代码部分工作,并导致重定向循环。if(is_user_logged_in() && function_exists(\'pmpro_hasMembershipLevel\') && pmpro_hasMembershipLevel()) { global $current_user; $current_user->membership_level = pmpro_getM