2017-01-04 5 views
0

私は、Wordpressを私のウェブサイトのバックエンドとして使用して、アカウントを作成して投稿することができます。投稿は投稿の閲覧者のみが見ることができます。私は、例えば、サイト上のほとんどの場所での投稿のリストのクエリを、これを扱ってきました:ユーザーが閲覧している投稿の投稿者でない場合はリダイレクト


$wpb_all_query = new wp_query(array('author' => $current_user->ID, 'post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>-1));` 

私が今あれば、人々は他の著者による投稿を見ることができることを実現していますそれらは手動で投稿のURLを入力します(これは簡単に推測できます)。表示しようとしている投稿の作者でない場合は、どうすればリダイレクトできますか?

答えて

0

あなたがする必要があるのは、

$required_capability = 'edit_others_posts'; 
$redirect_to = ''; 
function redirect_user() {  

    global $required_capability, $redirect_to; 
    if (!current_user_can($required_capability)) {    
     if ($redirect_to == '') { $redirect_to = get_option('home');}    
     wp_redirect($redirect_to,302);    
    }  
} 

add_action('init','redirect_user',0); 

あなたは、現在のユーザーのために適用したいものは何でも変更ビューの編集を読んする機能、など。です。

1

Wordpressのは、ユーザーが、私は感謝

+0

あなたにその参考になっ願っ筆者か...

$user = wp_get_current_user(); if (!is_author()) { //The user has the "author" role } 

であるチェック用のコア機能を提供しています。私はこれをインスピレーションとして使用して終了しました: 'if($ current_user-> ID == $ post-> post_author){// showpage}' – user3303862

関連する問題