Php Wordpress-如果用户有帖子,则显示快捷码

Php Wordpress-如果用户有帖子,则显示快捷码,php,wordpress,if-statement,custom-post-type,Php,Wordpress,If Statement,Custom Post Type,我创建了一个快捷代码[my books],仅当登录用户以“books”自定义帖子类型提交了一篇或多篇帖子时才会显示 如果用户已提交此帖子类型的帖子,则短代码将返回“我的书”仪表板的按钮 这是我的密码: <?php function user_has_books($user_id) { $result = new WP_Query(array( 'author'=>$user_id, 'post_type'=>'books', 'post_status

我创建了一个快捷代码
[my books]
,仅当登录用户以“books”自定义帖子类型提交了一篇或多篇帖子时才会显示

如果用户已提交此帖子类型的帖子,则短代码将返回“我的书”仪表板的按钮

这是我的密码:

<?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->ID))
呼叫?没有它似乎可以正常工作。)

已经否决了,太棒了!谢谢,有原因吗?是的,有更好的方法。让我很快给你弄点东西。在我给你一些东西之前,你需要测试一下,太棒了!谢谢,有原因吗?是的,有更好的方法。让我很快给你弄点东西。在我给你东西之前需要测试一下