Lazapee Reviews: Blog chuyên đánh giá, so sánh sản phẩm

Tạo shortcode cho Buddy Press trên WordPress đơn giản

Tạo shortcode cho Buddy Press trên WordPress đơn giản
Nội dung bài viết

Đây là một plugin WordPress đơn giản để tạo shortcode để hiển thị các dữ liệu quan trọng từ BuddyPress. Plugin này sẽ cho phép bạn chèn các thông tin thành viên, nhóm hoặc hoạt động vào bất kỳ đâu trên website bằng shortcode.
Plugin tạo shortcode cho Buddy Press WordPress hiển thị những trường dữ liệu quan trọng

Cách cài đặt Plugin Shortcode cho Buddy Press WordPress

  1. Tạo file PHP với nội dung trên (ví dụ: bp-data-shortcodes.php)  theo code bên dưới.
  2. Nén thành file zip hoặc upload trực tiếp vào thư mục /wp-content/plugins/
  3. Kích hoạt plugin trong khu vực quản trị WordPress

&lt;?php /* Plugin Name: BuddyPress Data Shortcodes with Links Description: Tạo shortcode để hiển thị dữ liệu BuddyPress quan trọng, bao gồm avatar, liên kết profile, nhóm và các liên kết liên quan Version: 1.2 Author: Your Name */ if (!defined('ABSPATH')) {</p>
<pre><code>exit; // Thoát nếu truy cập trực tiếp</code></pre>
<p>} class BP_Data_Shortcodes_With_Links {</p>
<pre><code>public function __construct() {

    // Đăng ký các shortcode

    add_shortcode('bp_member_data', array($this, 'member_data_shortcode'));

    add_shortcode('bp_group_data', array($this, 'group_data_shortcode'));

    add_shortcode('bp_activity_data', array($this, 'activity_data_shortcode'));



    // Thêm trang hướng dẫn trong quản trị plugin

    add_action('admin_menu', array($this, 'add_plugin_instructions_page'));

}



/**

 * Shortcode hiển thị thông tin thành viên

 */

public function member_data_shortcode($atts) {

    if (!function_exists('buddypress')) {

        return 'BuddyPress chưa được kích hoạt';

    }



    $atts = shortcode_atts(array(

        'user_id' =&gt; bp_loggedin_user_id(),

        'field' =&gt; 'display_name', // Các trường khác: user_email, user_url, etc.

        'xprofile' =&gt; '', // ID trường xProfile nếu muốn

        'avatar' =&gt; 'false', // Hiển thị avatar

        'avatar_size' =&gt; '50', // Kích thước avatar

        'link' =&gt; 'true' // Hiển thị liên kết đến profile

    ), $atts);



    $user_id = $atts['user_id'];

    $output = '';



    if ($atts['avatar'] === 'true') {

        $output .= '&lt;div class="bp-member-avatar"&gt;' . bp_core_fetch_avatar(array(

            'item_id' =&gt; $user_id,

            'type' =&gt; 'thumb',

            'width' =&gt; $atts['avatar_size'],

            'height' =&gt; $atts['avatar_size']

        )) . '&lt;/div&gt;';

    }



    $user_data = '';

    if (empty($atts['xprofile'])) {

        $user = get_userdata($user_id);

        $user_data = isset($user-&gt;{$atts['field']}) ? $user-&gt;{$atts['field']} : '';

    } else {

        $user_data = bp_get_profile_field_data(array(

            'field' =&gt; $atts['xprofile'],

            'user_id' =&gt; $user_id

        ));

    }



    if ($atts['link'] === 'true') {

        $output .= '&lt;a href="' . bp_core_get_user_domain($user_id) . '"&gt;' . $user_data . '&lt;/a&gt;';

    } else {

        $output .= $user_data;

    }



    return $output;

}



/**

 * Shortcode hiển thị thông tin nhóm

 */

public function group_data_shortcode($atts) {

    if (!bp_is_active('groups')) {

        return 'Tính năng nhóm BuddyPress chưa được kích hoạt';

    }



    $atts = shortcode_atts(array(

        'group_id' =&gt; '',

        'field' =&gt; 'name', // Các trường khác: description, slug, total_member_count

        'avatar' =&gt; 'false', // Hiển thị avatar

        'avatar_size' =&gt; '50', // Kích thước avatar

        'link' =&gt; 'true' // Hiển thị liên kết đến nhóm

    ), $atts);



    if (empty($atts['group_id'])) {

        return 'Vui lòng cung cấp ID nhóm';

    }



    $group = groups_get_group($atts['group_id']);

    $output = '';



    if ($atts['avatar'] === 'true') {

        $output .= '&lt;div class="bp-group-avatar"&gt;' . bp_core_fetch_avatar(array(

            'item_id' =&gt; $atts['group_id'],

            'object' =&gt; 'group',

            'type' =&gt; 'thumb',

            'width' =&gt; $atts['avatar_size'],

            'height' =&gt; $atts['avatar_size']

        )) . '&lt;/div&gt;';

    }



    $group_data = isset($group-&gt;{$atts['field']}) ? $group-&gt;{$atts['field']} : '';

    if ($atts['link'] === 'true') {

        $output .= '&lt;a href="' . bp_get_group_permalink($group) . '"&gt;' . $group_data . '&lt;/a&gt;';

    } else {

        $output .= $group_data;

    }



    return $output;

}



/**

 * Shortcode hiển thị hoạt động

 */

public function activity_data_shortcode($atts) {

    if (!bp_is_active('activity')) {

        return 'Tính năng hoạt động BuddyPress chưa được kích hoạt';

    }



    $atts = shortcode_atts(array(

        'count' =&gt; 5,

        'type' =&gt; 'activity_update',

        'user_id' =&gt; '',

        'link' =&gt; 'true' // Hiển thị liên kết đến hoạt động

    ), $atts);



    $args = array(

        'per_page' =&gt; $atts['count'],

        'action' =&gt; $atts['type'],

        'user_id' =&gt; $atts['user_id']

    );



    if (bp_has_activities($args)) {

        ob_start();

        echo '&lt;ul class="bp-activity-shortcode"&gt;';

        while (bp_activities()) : bp_the_activity();

            echo '&lt;li&gt;';

            if ($atts['link'] === 'true') {

                echo '&lt;a href="' . bp_get_activity_thread_permalink() . '"&gt;' . bp_get_activity_action() . '&lt;/a&gt;';

            } else {

                echo bp_get_activity_action();

            }

            echo '&lt;div class="activity-content"&gt;' . bp_get_activity_content_body() . '&lt;/div&gt;';

            echo '&lt;/li&gt;';

        endwhile;

        echo '&lt;/ul&gt;';

        return ob_get_clean();

    }



    return 'Không có hoạt động nào';

}



/**

 * Thêm trang hướng dẫn trong quản trị plugin

 */

public function add_plugin_instructions_page() {

    add_submenu_page(

        'plugins.php',

        'Hướng dẫn sử dụng BuddyPress Data Shortcodes',

        'BP Shortcodes Guide',

        'manage_options',

        'bp-shortcodes-guide',

        array($this, 'render_instructions_page')

    );

}



/**

 * Hiển thị nội dung trang hướng dẫn

 */

public function render_instructions_page() {

    echo '&lt;div class="wrap"&gt;';

    echo '&lt;h1&gt;Hướng dẫn sử dụng BuddyPress Data Shortcodes&lt;/h1&gt;';

    echo '&lt;p&gt;Dưới đây là các shortcode có sẵn và cách sử dụng:&lt;/p&gt;';

    echo '&lt;h2&gt;1. Shortcode thành viên&lt;/h2&gt;';

    echo '&lt;p&gt;<code>[bp_member_data field="display_name" avatar="true" avatar_size="50" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;Hiển thị tên hiển thị, avatar và liên kết đến profile của thành viên đang đăng nhập.&lt;/p&gt;'; echo '&lt;p&gt;<code>[bp_member_data user_id="123" field="user_email" avatar="true" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;avatar và liên kết đến profile của thành viên có ID 123.&lt;/p&gt;'; echo '&lt;p&gt;<code>[bp_member_data xprofile="2" avatar="true" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;Hiển thị dữ liệu từ trường xProfile có ID là 2, avatar và liên kết đến profile.&lt;/p&gt;'; echo '&lt;h2&gt;2. Shortcode nhóm&lt;/h2&gt;'; echo '&lt;p&gt;<code>[bp_group_data group_id="5" field="name" avatar="true" avatar_size="50" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;Hiển thị tên, avatar và liên kết đến nhóm có ID 5.&lt;/p&gt;'; echo '&lt;p&gt;<code>[bp_group_data group_id="5" field="total_member_count" avatar="true" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;Hiển thị số lượng thành viên, avatar và liên kết đến nhóm.&lt;/p&gt;'; echo '&lt;h2&gt;3. Shortcode hoạt động&lt;/h2&gt;'; echo '&lt;p&gt;<code>[bp_activity_data count="3" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;Hiển thị 3 hoạt động mới nhất với liên kết đến từng hoạt động.&lt;/p&gt;'; echo '&lt;p&gt;<code>[bp_activity_data type="activity_update" count="5" link="true"]</code>&lt;/p&gt;'; echo '&lt;p&gt;Hiển thị 5 bản cập nhật trạng thái với liên kết đến từng hoạt động.&lt;/p&gt;'; echo '&lt;/div&gt;'; }</code></pre>
<p>} new BP_Data_Shortcodes_With_Links(); 

Cách sử dụng Shortcode Buddy Press

Shortcode thành viên: [bp_member_data field="display_name" avatar="true" avatar_size="50" link="true"]: Hiển thị tên hiển thị, avatar và liên kết đến profile của thành viên đang đăng nhập. [bp_member_data user_id="123" field="user_email" avatar="true" link="true"]: Hiển thị email, avatar và liên kết đến profile của thành viên có ID 123. [bp_member_data xprofile="2" avatar="true" link="true"]: Hiển thị dữ liệu từ trường xProfile có ID là 2, avatar và liên kết đến profile. Shortcode nhóm: [bp_group_data group_id="5" field="name" avatar="true" avatar_size="50" link="true"]: Hiển thị tên, avatar và liên kết đến nhóm có ID 5. [bp_group_data group_id="5" field="total_member_count" avatar="true" link="true"]: Hiển thị số lượng thành viên, avatar và liên kết đến nhóm. Shortcode hoạt động: [bp_activity_data count="3" link="true"]: Hiển thị 3 hoạt động mới nhất với liên kết đến từng hoạt động. [bp_activity_data type="activity_update" count="5" link="true"]: Hiển thị 5 bản cập nhật trạng thái với liên kết đến từng hoạt động.

Hướng dẫn trong quản trị

Sau khi cài đặt plugin, bạn có thể truy cập trang hướng dẫn bằng cách điều hướng đến Plugins > BP Shortcodes Guide trong khu vực quản trị WordPress. Tại đây, bạn sẽ tìm thấy các ví dụ và cách sử dụng chi tiết cho từng shortcode.

Plugin tạo shortcode cho Buddy Press WordPress hiển thị những trường dữ liệu quan trọng
Tạo shortcode cho Buddy Press trên WordPress đơn giản
Tạo shortcode cho Buddy Press trên WordPress đơn giản
Công nghệ Nội dung
Show full profile Công nghệ Nội dung

Mình thích tìm hiểu về WordPress, HTML & CSS. Là tác giả của nhiều bài viết trên blog này và các video trên Kênh YouTube (Sắp làm) | Bạn thể xem thêm thông tin tại mục LIÊN HỆ.

Chúng tôi trên

Nhận mã giảm giá, ưu đãi độc quyền qua Email của bạn mỗi ngày.

logo-CNND

Sáng tạo nội dung dễ dàng hơn

Copyright © 2009-2020 Lazapee All Rights Reserved.

Công nghệ nội dung là Blog chuyên về chia sẻ các công cụ sáng tạo nội dung, AI theo góc nhìn và trải nghiệm của bản thân. 

Trang web hiện chỉ đang trong quá trình chạy thử nghiệm. Tất cả hình ảnh và nội dung chỉ mang tính chất tham khảo.
Công nghệ nội dung
Logo