2016-11-24 72 views
0

我有一个网站,有多个页面的作者(谁有自己的作者管理员帐户和ID)。在他们的页面中显示他们最新的提交内容(自定义帖子类型)。如何仅显示一位作者的类别?

我想在左侧显示他们提交的类别,但我不确定如何显示类别,同时让他们仅与该特定作者相关。例如,我想它会显示为一个列表:

  • 图书(2)
  • 短篇小说(12)

这个数字每个类别旁边会的数量特定作者发布的意见书。点击它会显示该类别中的提交内容。

这些类别非常静态,并且在作者之间共享,但要将其与仅打开的作者页面关联起来很困难。任何人都可以帮助我吗?

这是我有:

<?php 

/* 
Plugin Name: Shagun Category Display 
*/ 

defined('ABSPATH') or die('No script kiddies please!'); 

define('WP_PLUGIN_URL', plugin_dir_url(__FILE__)); 
define('SHAGUN_WIDGET_FOLDER', '/shagun-shortcodes/'); 
define('SHAGUN_WIDGET_URL', WP_PLUGIN_URL . '/shagun-shortcodes'); 


function Category_display($atts) { 

    ob_start();  
    extract(shortcode_atts(array(
     'author' => '' 
    ), $atts)); 


    $args = array(
     'post_type' => 'case_study' 
    ); 

    $categories = get_categories($args); 

    echo '<ul>'; 

    foreach ($categories as $category) { 
     $url = get_term_link($category); 
     ?> 
     <li><a href="<?php echo $url;?>"><?php echo $category->name; ?></a></li> 

     <?php 
    } 

    echo '<li> end of list </li></ul>'; 


    wp_reset_postdata(); 
    return ob_get_clean(); 
}; 


add_shortcode('Category_display', 'Category_display'); 
?> 

回答

0

基本上,你将不得不作出查询每个类别检查多少职位笔者对于该类别中的。

foreach ($categories as $category) { 
    $url = get_term_link($category); 

    $args = [ 
     'cat' => $category->term_id, 
     'author' => $atts['author'], 
     'post_type' => 'case_study', 
    ]; 
    $q = new WP_Query($args); 
    ?> 

    <li><a href="<?php echo $url;?>"><?php echo $category->name; ?> (<?php echo $q->found_posts; ?>)</a></li> 

    <?php 
} 

如果你想只显示作者张贴的东西,在类别,你可以很容易地做到这一点,通过$q = [...]下加入这一行:

if ($q->found_posts < 1) continue; 

这是未经测试,所以有可能是一些错别字。

相关问题