0

ユーザーのお気に入りの投稿の合計を取得しようとしていますが、機能していないようです。バディプレスを使用しており、各プロファイルでユーザーが好きな記事を好きなボックスに設定し、それをお気に入りに設定すると、プロファイルに表示されるようになります。基本的に私はそれを機能させようとしていますが、機能していません。

私は自分のプロフィールにアクセスすると問題なく表示されますが、他の誰かにアクセスすると私のものが表示されます 彼のお気に入りの投稿は表示されません 私だけがループしているようですが、別のユーザーを使用してログインし、同じ問題が発生しています 彼のちなみに、お気に入りの投稿は私のプロフィールと彼のプロフィールに表示され、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

作成者ページを表示している現在のユーザーではなく、現在の作成者ページの 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 に答える
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 に答える