2013-11-22 73 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

相关问题