2013-11-22 110 views
0

有誰知道如何在get_related_author_posts()查詢中調用自定義帖子類型(CPT)?調用相關作者的自定義帖子帖子內容

我在我的functions.php文件中使用該函數,然後在<?php echo get_related_author_posts(); ?>的CPT模板中調用它,以便同一作者的其他內容和內容類型的鏈接可以出現在模板中。

我所做的所有研究都表明,我應該能夠通過將CPT查詢'post_type' => 'webarticle'添加到函數中來實現我想要的功能。

看起來很簡單吧?

但這不適合我。以下是我的代碼。任何提示如何做到這一點或我會出錯的地方將不勝感激。謝謝!

function get_related_author_posts() { 
    global $authordata, $post; 

    $authors_posts = get_posts(array('author' => $authordata->ID, 'post_type' => 'webarticle', 'post__not_in' => array($post->ID), 'posts_per_page' => 5)); 

    $output = ''; 
    foreach ($authors_posts as $authors_post) { 
     $output .= '<p>' . '<a href="' . get_permalink($authors_post->ID) . '">' . apply_filters('the_title', $authors_post->post_title, $authors_post->ID) . '</a>' . '</p>' ; 
    } 
    $output .= ''; 

    return $output; 
} 

這裏是新的標記 - 仍然沒有工作 - 與wp_reset_query()功能加入。

function get_related_author_posts() { 
    global $authordata, $post; 

    $authors_posts = get_posts (array('author' => $authordata->ID, 'post__not_in' => array($post->ID), 'posts_per_page' => 5)); 

    wp_reset_query() 

    $args = array('post_type' => 'webarticle'); 
    $query = new WP_Query($args); 
    if ($query->have_posts()) { 
    while ($query->have_posts()) { 
     $query->the_post(); 
     //code for each post from query// 

     $output = '<ul>'; 
    foreach ($authors_posts as $authors_post) { 
     $output .= '<li><a href="' . get_permalink($authors_post->ID) . '">' . apply_filters('the_title', $authors_post->post_title, $authors_post->ID) . '</a></li>'; 
    } 
    $output .= '</ul>'; 

    return $output; 

    } 
} 

} 
+0

嘗試在函數的最後添加wp_reset_query()。比你應該能夠創建新的查詢'post_type'=>'webarticle'args –

+0

非常感謝你@ValeryStatichny。這看起來像是一個充滿希望的建議。將'wp_reset_query()'添加到我的函數的末尾非常簡單,但現在我在推薦的後半部分遇到問題。你能否提供新的查詢樣本?我嘗試了幾個不同的參數,但無法使其工作。 – user2591811

回答

0

對不起,我不知道如何把格式化的回答中還評論 - 這就是爲什麼我把答案,所以請不要,如果它不值錢怪我 - 這是唯一的建議:)

$args = array('post_type' => 'webarticle'); 
$query = new WP_Query($args); 
if ($query->have_posts()) { 
    while ($query->have_posts()) { 
     $query->the_post(); 
     //code for each post from query 
    } 
} 
+0

謝謝@Valery。我一直在尋找解決方案,你的建議是迄今爲止最好的。但我仍然無法實現它的工作。我的錯誤日誌說,包含'$ args = array('post_type'=>'webarticle');'的代碼行正在產生錯誤。我粘貼了新的標記,包括'wp_reset_query()'函數和上面的新的自定義帖子類型查詢。我非常感謝你的幫助。還有什麼可以想到的嗎? – user2591811

+0

你可以提供完整的代碼功能和查詢? –

+0

是的,完整的代碼,因爲我將它輸入到我的functions.php文件中,在上面,編輯到我原來​​的問題中,並在粗體標題「Here is new markup ...」下。我用它來調用它的代碼是< ?php echo get_related_author_posts(); ?>' – user2591811

相關問題