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