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