Làm thế nào để có được một liên kết hồ sơ người dùng bạn bè và một trường hồ sơ người dùng nhất định cho tác giả bài viết hiện tại?


16

Tôi muốn thay thế get_ Author_link () và get_the_ Author_meta ($ feld)

với nội dung tương đương với tác giả của trang hồ sơ người dùng Buddypress hiện tại và truy xuất trường hồ sơ cụ thể từ trang Buddypress của anh ấy

tức là tôi chỉ muốn hiển thị một liên kết đến hồ sơ người dùng bài đăng và tiểu sử từ một trong các trường hồ sơ BP của anh ấy

Tôi không chắc nên sử dụng chức năng nào cho việc này ... Tài liệu BuddyPress vẫn chưa rõ ràng không giống như WP Codex ...

cảm ơn

Câu trả lời:


20

Đối với liên kết hồ sơ của tác giả, sử dụng

bp_core_get_user_domain( $user_id )

để lấy URL và

bp_core_get_userlink( $user_id )

để có được một yếu tố liên kết HTML, bao gồm tên hiển thị.

Đối với dữ liệu xprofile, hãy sử dụng

xprofile_get_field_data( $field, $user_id )

$field có thể là tên của trường (như 'Tiểu sử') hoặc id trường số.


3

Hơi khác một chút, nhưng vì chủ đề này xuất hiện đầu tiên trên Google, nên nó có thể hữu ích cho người khác.

Để có được liên kết hồ sơ người dùng đăng nhập hiện tại, chỉ cần sử dụng bp_loggedin_user_domain()

Mong rằng sẽ giúp.


2

Nếu bạn cần thêm nó trong phần bình luận:

    <?php
$author_id = get_comment(get_comment_ID())->user_id;
if (function_exists('bp_get_profile_field_data')) {
    $bp_name = bp_core_get_userlink( $author_id );
    $bp_location = bp_get_profile_field_data('field=Location&user_id='.$author_id);
    if ($bp_name) {
    echo '<div>'. $bp_name . '</div>';
    }
    if ($bp_location) {
    echo '<div class="authorinfo">'. $bp_location . '</div>';
    }
}
?>

Tôi đã bao gồm một trường hồ sơ mẫu 'vị trí', có thể bị xóa. Điều này là để hiển thị một liên kết đến hồ sơ Buddypress của tác giả bình luận. Nó phải được đặt bên trong vòng bình luận của bạn, nó sẽ trông giống như:

foreach($comments as $comment)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.