为什么这个重定向不起作用?

时间:2017-04-22 18:55:05

标签: php wordpress

我对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;
        }

1 个答案:

答案 0 :(得分: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;
       }
    }