2016-11-24 69 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; 

這是未經測試,所以有可能是一些錯別字。

相關問題