Я пытаюсь отобразить поле xprofile BuddyPress в многостраничном блоге WordPress. Я думал, что это может сделать трюк, но display_user, похоже, не работает вне BP? Есть простой способ сделать это? Я знаю, что есть старый плагин, который делает это в виджетах, но мне это совсем не нужно, и я бы предпочел поставить это прямо в тему.
Вот что я пробовал в теме в многосайтовом блоге. Это работает с loggedin_user-> id, но, конечно, для того, что я снимаю, это данные профиля для администратора блога. Возможно ли это получить?
<?php global $bp; $myfield = xprofile_get_field_data( 'Counties Served', $bp->displayed_user->id, $multi_format = 'comma' ); $data = xprofile_format_profile_field('checkbox', $myfield); echo $data; ?>
Поиграв с ним немного больше, вот что, наконец, помогло мне:
global $bp; $thisblog = $current_blog->blog_id; $user_from_email = get_user_by('email', get_blog_option($thisblog, 'admin_email')); $user_id = $user_from_email->ID; $myfield = xprofile_get_field_data( 'Counties Served', $user_id, $multi_format = 'comma' ); $data = xprofile_format_profile_field('checkbox', $myfield); echo $data;
Идентификатор $bp->displayed_user->id
возвращает тот же идентификатор, что и идентификатор автора, поэтому, когда вы не находитесь внутри цикла членов или на странице участников, вам нужно получить идентификатор пользователя, используя функции WordPress.
<?php global $bp, $post; $myfield = xprofile_get_field_data( 'Counties Served', $post->post_author, $multi_format = 'comma' ); $data = xprofile_format_profile_field('checkbox', $myfield); echo $data; ?>