Избранное wp получить общее количество любимых сообщений пользователя

Я пытаюсь получить общий любимый пост пользователя, но, похоже, у меня не получается. Я использую 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> `

person DeadArtcore    schedule 22.04.2013    source источник


Ответы (4)


Переменная $user_id должна содержать идентификатор запрашиваемого пользователя. Взгляните, например. этот ответ о том, как получить информацию об авторе из $wp_query global.

person diggy    schedule 22.04.2013
comment
Ну, да, я знаю это, но я не хочу получать все сообщения только от одного идентификатора пользователя, поэтому в основном я размещаю приведенный выше код, который я разместил в profile.php под buddypress, но я хочу, чтобы каждый пользователь автоматически добавлял свои сообщения в избранное, а не только пользователь id, что происходит, я вижу только, что мой пользователь получает избранные сообщения, но я посещаю чужой профиль, я вижу свои сообщения, это должны быть их сообщения, и вы меня понимаете? .. Я надеюсь, что я ясно выражаюсь, мне нужна помощь, я не wp & эксперт по php просто знает мои основы, я не очень хорошо разбираюсь, я бы очень благодарен, если бы вы могли мне помочь, спасибо - person DeadArtcore; 22.04.2013

Пытаться:

wpfp_get_users_favorites( bp_displayed_user_id() );
person shanebp    schedule 22.04.2013
comment
спасибо, но я пробовал, не работает, вот как я это реализовал pastie.org/7699589 я вытаскиваю свои мозги, не могу показаться чтобы заставить его работать, он отлично отображается в моем профиле, но в профилях других пользователей вместо этого отображаются мои любимые сообщения, это должны быть их сообщения - person DeadArtcore; 23.04.2013
comment
также пробовал этот способ, и он дал мне, что сообщения не были найдены <?php $favorite_post_ids = wpfp_get_users_favorites( bp_displayed_user_id() ); if($favorite_post_ids) { ?>, поэтому не работает - person DeadArtcore; 23.04.2013
comment
другими словами, я пытаюсь получить идентификатор пользователя просматриваемой в данный момент страницы, если это объясняет большую глубину того, что я пытаюсь сделать. - person DeadArtcore; 23.04.2013
comment
Просто выведите bp_displayed_user_id() и убедитесь, что значение правильное. Если это неверно, вы вводите разметку неправильно. И где живет этот код? В файле шаблона single/profile-loop.php? Если нет, посмотрите вызовы do_action в этом файле. - person shanebp; 23.04.2013
comment
спасибо, за попытку, я ценю, я пробовал, что вот pastie.org/7700029 оба, что я пробовал, и все еще ничего. .. - person DeadArtcore; 23.04.2013
comment
Тогда вы не находитесь в цикле single/profile, когда вызываете bp_displayed_user_id(), поэтому не имеет значения, что вы пытаетесь сделать. У вас основная ошибка впрыска. - person shanebp; 23.04.2013
comment
хорошо, я внутри single/profile-loop.php, я добавляю свой любимый почтовый ящик в свой, и нет, он не работает в любом случае - person DeadArtcore; 23.04.2013
comment
вот несколько попыток, которые я пробовал, и они не работают из profile-loop.php 1. pastie.org/7700397 2. pastie.org/7700401 3.pastie.org/7700407 если бы вы могли проверить, что не так, я вытаскиваю свои мозги, кажется, не могу заставить это работать, я занимался этим часами... - person DeadArtcore; 23.04.2013

Я также использую этот плагин, но в основном для того, чтобы перечислять свои избранные в качестве эскизов. Я получаю сообщение об ошибке только в операторе «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>";
  } ; ?>
person user1083148    schedule 22.04.2013
comment
я сам не сталкивался с какой-либо ошибкой, я просто пытаюсь получить избранные сообщения каждого пользователя в своих профилях / buddypress, вместо этого я получаю зацикливание моих любимых сообщений в их профиле, так что это моя проблема - person DeadArtcore; 23.04.2013

Если вы хотите получить идентификатор текущей страницы автора, а не текущего пользователя, просматривающего страницу автора, вы можете использовать этот метод:

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

Это создает объект, который вы можете использовать, чтобы получить то, что вы хотите.

Например, curauth->ID содержит идентификатор этого автора.

Чтобы это работало, вам нужно поместить этот код и любой соответствующий код в файл шаблона author.php. Я предполагаю, что вы уже делаете это.

P.S. Все это очень хорошо описано в Wordpress Codex.

person kakashigr    schedule 19.02.2014