检查用户是否在WordPress上发布了自定义帖子发布的重定向

时间:2019-04-04 01:42:02

标签: php wordpress

我试图在用户访问某个页面时进行检查,以查看当前用户是否具有自定义帖子类型的已发布或草稿帖子。如果它们这样做,那么我正在尝试重定向它们。我发现了一些帖子,但是不能将所有内容组合在一起以满足我的需求。我可以更轻松地了解模板重定向功能,因此我尝试了这种方法。我不确定这是否是最好的方法。

我尝试使用以下代码段:

https://wordpress.stackexchange.com/questions/187973/how-to-check-that-if-current-user-id-has-posts-or-not

https://wordpress.stackexchange.com/questions/139818/check-if-current-user-has-post-in-post-type-and-is-author-role

add_action( 'template_redirect', 'redirect_to_specific_page_resume' );

    function redirect_to_specific_page_resume() {
    global $post;

    $current_user = $post->post_author;

    if(!empty($current_user)){
    $user_post_count = (int) count_user_posts( $current_user );

       if ( is_page('479') && $user_post_count == 1 ) {

            wp_redirect( "/myaccount/manage-resumes", 301 ); 

            exit;

      }
   }        
   }

如果当前用户转到PAGE ONE,并且是自定义帖子类型的发布者或草稿作者,则重定向到PAGE TWO。如果当前用户转到PAGE ONE,并且不是自定义帖子类型的已发布作者,则不执行任何操作,照常加载PAGE ONE。

谢谢。

1 个答案:

答案 0 :(得分:0)

butlerblog提供的解决方案


function redirect_to_specific_page_resume() {

    /*
     * Only bother to check if the user is logged in 
     * AND we're on page ID 479. Otherwise, there's no
     * reason to run the remaining logic.
     */
    if ( is_user_logged_in() && is_page( 479 ) ) {

        // Get the current logged in user's ID
        $current_user_id = get_current_user_id();

        // Count the user's posts for 'resume' CPT
        $user_post_count = (int) count_user_posts( $current_user_id, 'resume' );

        // If the user has a 'resume' CPT published
        if ( $user_post_count > 1 ) {

            // Get the URL to redirect the user to.
            $url = get_permalink( 480 );

            // Redirect the user.
            wp_redirect( $url ); 
            exit();

        }
    }
}