2017-04-22 79 views
0

我對Wordpress相當陌生,所以不確定我做錯了什麼。在我的Wordpress網站上,用戶可以創建自定義的帖子類型(產品)。我打算禁止訪問像這樣的頁面:example.com/post-a-listing,通過將用戶重定向到另一個頁面(如果他們沒有創建至少一個產品)。這是我做過嘗試,但這種不工作..爲什麼這個重定向不起作用?

function yoursite_user_has_posts($user_id) { 
     $result = new WP_Query(array(
     'author'=>$user_id, 
     'post_type'=>'product', 
     'post_status'=>'publish', 
     'posts_per_page'=>1, 
    )); 
     return (count($result->posts)!=0); 
    } 

add_action('template_redirect', 'redirect_to_specific_page'); 

    function redirect_to_specific_page() { 

    if (is_page('post-a-listing') && ! yoursite_user_has_posts($user_id)) { 

    wp_redirect('https://example.com/', 301); 
     exit; 
     } 
+0

我曾經有過類似的問題。我在腳本的頂部添加了ob_start(),它的功能就像魅力一樣! – manian

+0

謝謝,但我應該把它放在哪裏?因爲我提供的代碼是在函數.php –

+0

嘗試第一和第二個答案在這裏http://stackoverflow.com/questions/19587154/wp-redirect-is-not-working – manian

回答

3

該函數的問題是$ USER_ID實際上,從那裏你可以得到$ USER_ID用了參考呢?

使用get_current_user_id()函數內部得到當前的用戶ID。

function redirect_to_specific_page() { 
     $user_id = get_current_user_id(); 
     if (is_page('post-a-listing') && ! yoursite_user_has_posts($user_id)) { 
     wp_redirect('https://example.com/', 301); 
     exit; 
     } 
    } 
+0

我' m越來越白的屏幕.. –

+0

對不起,沒有關閉括號:)它的作品:)謝謝! –