我创建了一个简码[my-books]
,仅当登录的用户以“图书”自定义帖子类型提交了1个或多个帖子时才显示。
如果用户以这种帖子类型提交了帖子,则简码会将一个按钮返回到“我的书”仪表板。
这是我的代码:
<?php
function user_has_books($user_id) {
$result = new WP_Query(array(
'author'=>$user_id,
'post_type'=>'books',
'post_status' =>'any, trash, auto-draft',
'posts_per_page'=>1,
));
return (count($result->posts)!=0);
}
add_shortcode( 'my-books' , 'my_book_listings_func' );
function my_book_listings_func( $atts ) {
$user = wp_get_current_user();
$mybooksbutton = '<a class="button" href="'. site_url() . '/listings/books/">My Books</a>';
if ($user->ID)
if (user_has_books($user->ID))
return $mybooksbutton;
}
?>
我的代码工作得很好,但是由于答案可以追溯到2010年-2011年,所以我试图找出是否还有另一种更好,更有效的方法来做到这一点?
(而且,我需要endif;
来关闭if(user_has_books($user->ID))
调用吗?如果没有它,它似乎可以正常工作。)
我创建了一个简码[my-books],仅当登录的用户以“ books”自定义帖子类型提交了1个或多个帖子时才显示。如果用户以这种帖子类型提交了帖子,则...
function user_has_posts($post_type = 'post') {
global $wpdb;
$user_id = get_current_user_id();
$post_count = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_author = {$user_id} and post_type = '{$post_type}'");
return !empty($post_count);
}
echo var_dump(user_has_posts('jobs'));