我在buddypress中使用了自定义的wp\\U查询来列出作者的所有帖子(取自用户当前访问的个人资料)。我试着关注其他话题,但失败得很惨。
代码如下:
?php // Display posts in user profile
// Construct new user profile tab
add_action( \'bp_setup_nav\', \'add_profileposts_tab\', 100 );
function add_profileposts_tab() {
global $bp;
bp_core_new_nav_item( array(
\'name\' => \'Publikacje\',
\'slug\' => \'publikacje\',
\'screen_function\' => \'bp_postsonprofile\',
\'default_subnav_slug\' => \'Moje publikacje\',
\'position\' => 35
)
);
}
// show \'Posts\' tab once clicked
function bp_postsonprofile() {
add_action( \'bp_template_content\', \'profile_screen_posts_show\' );
bp_core_load_template( apply_filters( \'bp_core_template_plugin\', \'members/single/plugins\' ) );
}
// query the loop and get the template
function profile_screen_posts_show() {
$user_id = bp_displayed_user_id();
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$query = new WP_Query( \'author=\' . $user_id );
?
?php if ( $query->have_posts() ) : ?
?php while ( $query->have_posts() ): $query->the_post(); ?
<div id="post-<?php the_ID(); ?> blog_list" <?php post_class(); ?>>
<div class="container-wrapper blog-list">
<div class="post-tittle"><h2 class="posttitle"> <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a> </h2></div>
</br>
<div class="post-wrapper">
<div class="miniaturka post-left">
?php if ( function_exists( \'has_post_thumbnail\' ) && has_post_thumbnail( get_the_ID() ) ):?
<div class="post-featured-image left">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(\'medium\');?></a>
</div>
?php endif;?
</div>
<div class="post-content post-right">
<p class="author class"><?php echo get_the_date(); ?></br><?php printf(get_the_category_list( \', \' ) ); ?></p>
</br>
<div class="entry">
<?php the_excerpt(); ?>
<span class="comments"><?php comments_popup_link(); ?></span>
</div>
</div>
</div>
</div>
</div>
?php endwhile; ?
?php else: ?
?php wp_reset_query(); ?
<div id="message" class="info">
<p><?php bp_displayed_user_username(); ?> jeszcze niczego nie napisał </p>
</div>
?php endif; wp_reset_postdata();? ?php
}
?
我尝试使用(抱歉格式太糟糕):
$query = new WP_Query(array(\'author=\'=>$user_id, \'posts_per_page\'=>20, \'paged\'=>$paged));
但是,虽然它可以工作(当然没有分页),但我会列出所有帖子,无论作者是谁。我做错了什么(除了在这方面做得非常糟糕)?
最合适的回答,由SO网友:user2143561 整理而成
好吧,我想出来了。我当时很傻。经过几次迭代后,我确定了这个版本:
$user_id = bp_displayed_user_id();
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$args = array(
\'posts_per_page\' => 10,
\'post_type\' => \'post\',
\'author\' => $user_id,
\'paged\' => $paged,
);
$query = new WP_Query($args);
我的主要问题是,我尝试使用“author=”=>$user\\u id,这使得它在所有作者的所有文章中循环。
也许这会对某人有所帮助。