Проверьте, есть ли у пользователя перенаправление опубликованных публикаций на WordPress - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь запустить проверку, когда пользователь заходит на определенную страницу, чтобы проверить, есть ли у текущего пользователя опубликованные или черновики сообщений пользовательского типа.Если они это сделают, то я пытаюсь их перенаправить.Я нашел несколько постов, но не повезло собрать все вместе, чтобы соответствовать моим потребностям.Я немного легче понимаю функцию перенаправления шаблонов, поэтому я попытался пойти по этому пути.Я не уверен, что это лучший способ сделать это.

Я пытался работать со следующими фрагментами:

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 голосов
/ 05 апреля 2019

Решение предоставлено 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();

        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...