如果我正确理解您的问题和代码,我认为您的问题如下:
$current_user = $post->post_author;
您正在将当前用户评估为文章作者。因此,您的逻辑计算将检查“如果页面为479,而帖子ID为479的作者ID仅发布了1篇帖子,则重定向”。我不认为这是你的意图。
此外,您使用count_user_posts()
不检查帖子类型,但您会询问用户是否是自定义帖子类型的作者。自定义帖子类型是什么?这不是你要检查的吗count_user_posts()
? 如果CPT段塞未通过in that function, 它只会检查“帖子”。下面的示例假设您要检查正在检查的is\\u page()值的post类型(479)。
最后呢,您正在检查用户的草稿或发布的帖子类型是否等于(==)1?如果是2呢?我怀疑这里的逻辑应该是“大于”(>)。
因此,在你的问题中有很多未回答的问题和一些明确的灰色区域,但根据我的猜测,这里有一个尝试:
add_action( \'template_redirect\', \'redirect_to_specific_page_resume\' );
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();
}
}
}