0

我试图获得用户最喜欢的帖子,但我似乎没有使用 buddypress 工作,并且我在每个个人资料中建立用户有他们最喜欢的框,他们喜欢的任何文章并将其设置为他们的最爱,它将显示在他们的个人资料中所以基本上我试图让它工作,但它不工作。

我去访问我的个人资料,它显示得很好,但我访问了别人的,我的显示它没有显示他最喜欢的帖子,只是我的,就像它只循环我的一样,但我使用另一个用户登录,它发生了同样的问题他最喜欢的帖子显示在我的个人资料和他的个人资料中,顺便说一句,我使用 wp 收藏夹插件。

所以这就是我试图做的事情,但它在我的个人资料中显示得很好,但是一旦我访问其他个人资料,它就会显示完全相同的东西,它不会显示他们最喜欢的帖子而不是我的帖子

这是我试图做的工作http://pastie.org/7697956

`

<div class="profile-box items-following">

    <h3><?php _e('fav posts', 'bd_lang'); ?></h3>

    <div class="profile-content">

        <?php $favorite_post_ids = wpfp_get_users_favorites(user_id);
        if($favorite_post_ids) { ?>

                <?php foreach ($favorite_post_ids as $o) : $p = get_post($o); if ($p->post_status == 'publish') { ?>    

                    <div class="profile-item">

                        <!--Begin Image-->
                        <?php if(has_post_thumbnail($o)) { ?>                   
                            <div class="post-thumbnail">
                                <a href="<?php get_permalink($o); ?>" title="<?php echo $p->post_title; ?>">
                                    <?php $image = bd_resize(get_post_thumbnail_id($o), '', 50, 0, true); ?>
                                    <img src="<?php echo $image[url]; ?>" width="<?php echo $image[width]; ?>" height="<?php echo $image[height]; ?>" alt="<?php if(get_post_meta(get_post_thumbnail_id($o), '_wp_attachment_image_alt', true)) { echo get_post_meta(get_post_thumbnail_id($o), '_wp_attachment_image_alt', true); } else { echo $p->post_title; } ?>" />       
                                </a>                
                            </div>                  
                        <?php } ?>
                        <!--End Image-->

                        <a href="<?php echo get_permalink($o); ?>" title="<?php echo $p->post_title; ?>"><?php echo $p->post_title; ?></a>

                    </div>

                <?php } endforeach; ?>

        <?php } else { ?>

            <div class="profile-item">
                <strong><?php _e('No posts have been added yet.', 'bd_lang'); ?></strong>
            </div>

        <?php } ?>

    </div>

</div> `
4

4 回答 4

0

Try:

wpfp_get_users_favorites( bp_displayed_user_id() );
于 2013-04-22T20:59:22.717 回答
0

$user_id变量应包含所查询用户的 ID。看看这个关于如何从全球获取作者信息的答案。$wp_query

于 2013-04-22T12:15:16.970 回答
0

我也在使用这个插件,但主要是将我自己的收藏夹列为缩略图。我只在“foreach”语句中收到错误,但除此之外它还有效。

我不知道它是否会帮助你,但无论如何,这里是:

<?php $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author)); ?>

<?php $user_favs = wpfp_get_users_favorites($curauth->display_name); ?>
<ul>


<?php  
foreach ($user_favs as $user_fav)
  {
echo "<a href='".get_permalink($user_fav)."' title='". get_the_title($user_fav) ."'>" . get_the_post_thumbnail( $user_fav, array(335,335) ) . "</a>";
  } ; ?>
于 2013-04-22T21:45:45.023 回答
0

如果要获取当前作者页面的ID,而不是当前查看作者页面的用户的ID,可以使用以下方法:

      $curauth = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author'));

这将创建一个对象,您可以使用它来获得您想要的东西。

例如,curauth->ID 保存该作者的 ID。

为此,您需要将此代码和任何相关代码放在 author.php 模板文件中。我假设你已经这样做了。

PS这一切都在Wordpress Codex中有很好的描述。

于 2014-02-19T13:02:03.433 回答