安装向导

安装向导

Codex Home → Legacy Docs → Archived Section: Getting Started → Installation Wizard
Installation Wizard

Archived file. This information is for BuddyPress installations up to version 1.6.5 only. There is no installation wizard for BuddyPress version 1.7 and above

After installing and activating BuddyPress, you will see an admin message with the link to the new BuddyPress Installation Wizard. Click on the "installation wizard" link.

Step 1: Choose the BuddyPress Components you want in your installation.
IMPORTANT: Do not select the 「Discussion Forums」 component
If you』ve never installed BuddyPress before, do not select the 「Discussion Forums」 component.
Instead if you want to enable sitewide or group forums, download the latest version of bbPress. bbPress will handle group forum integration in BuddyPress going forward -> https://codex.buddypress.org/user/setting-up-a-new-installation/installing-group-and-sitewide-forums/
Click on "Save & Next" button.

Step 2: Associate/Create Pages for your BuddyPress Components.
Click on "Save & Next" button.

Step 3: Choose Pretty Permalinks structure.
Click on "Save & Next" button.

Step 4: Choose theme to use for your BP install.
Recommend using the bp-default theme to test drive all the BP features you activated. Click on "Save & Next" button.

Step 5: Finish and Activate

Proceed to Next Task
Configure BuddyPress Components

Twenty Eleven 二〇一七主题

Twenty Eleven 二〇一七主题

Codex Home → BuddyPress Theme Development → BP Theme Compatibility and the WordPress Default Themes → Twenty Eleven Theme
Twenty Eleven Theme

A. One Column Layout
This is the default page layout of the Twenty Eleven theme. There』s no need to do anything else if this is the layout you prefer for all your BuddyPress pages.
B. Full-width page
Full-width Layout. Click on image to enlarge.If you prefer to have a full-width layout for all your BuddyPress pages, follow the steps laid out below.
1. Create a child theme of the Twenty Eleven theme.
2. Create a new file in your new child theme folder and name it buddypress.php.
3. Copy over the content of Twenty Eleven』s onecolumn-page.php file into the new buddypress.php file

5. Open up your child theme』s style.css file and add the following and save file.
.buddypress .entry-header,
.buddypress .entry-content,
.buddypress footer.entry-meta {
margin: 0 auto !important;
width: 100% !important;
}

6. Upload your Twenty Eleven child theme folder to server.
C. Two Column, Right Sidebar Layout
Two-column Layout. Click on image to enlarge.If you prefer to have a two column layout for all your BuddyPress pages, follow the steps below.
1. Create a child theme of the Twenty Eleven theme.
2. Create a new file in your new child theme folder and name it buddypress.php.
3. Copy over the content of Twenty Eleven』 theme』s sidebar-page.php file into the new buddypress.php file.

4. Create a functions.php file in the folder of your child theme if you don』t have one yet. You will need to remove the .singular body class generated via Twenty Eleven theme』s functions.php file for the regular pages, which is designed as a one column layout. Otherwise, the sidebar you will be adding will fall down below the BuddyPress content.
5. Add the following to your new functions.php file then save file.
$value) {
if ($value == 'singular') unset($wp_classes[$key]);
}
endif;
return $wp_classes;
}
add_filter('body_class', 'mme_remove_singular_body_class', 20, 2);

6. Upload your Twenty Eleven child theme folder to server.

配置组件 (v1.6)

配置组件 (v1.6)

Codex Home → Legacy Docs → Archived Section: Getting Started → Configuring Components (v1.6)
Configuring Components (v1.6)

Archived file. Good up to BP 1.6 version

After activating BuddyPress 1.6 and going through the new installation wizard, there will be five admin panels (relocated in BP 1.6) where you will be able to configure the plugin further. There』s a NEW Activity Stream admin panel in the backend as well.

Settings > BuddyPress > Components panel
Settings > BuddyPress > Pages panel
Settings > BuddyPress > Settings panel
Settings > BuddyPress > Forums panel
Users > Profile Fields panel
NEW Activity Stream admin panel

Settings > BuddyPress > Components
By default, all BuddyPress components are enabled. You can selectively disable any of the components by using the form. Your BuddyPress installation will continue to function. However, the features of the disabled components will no longer be accessible to anyone using the site

Available Components
Each component has a unique purpose, and your community may not need each one.

Extended Profiles
Customize your community with fully editable profile fields that allow your users to describe themselves.
Account Settings
Allow your users to modify their account and notification settings directly from within their profiles.
Friend Connections
Let your users make connections so they can track the activity of others and focus on the people they care about the most.
Private Messaging
Allow your users to talk to each other directly and in private. Not just limited to one-on-one discussions, messages can be sent between any number of members.
Activity Streams
Global, personal, and group activity streams with threaded commenting, direct posting, favoriting and @mentions, all with full RSS feed and email notification support.
User Groups
Groups allow your users to organize themselves into specific public, private or hidden sections with separate activity streams and member listings.
Discussion Forums
Full-powered discussion forums built directly into groups allow for more conventional in-depth conversations. NOTE: This will require an extra (but easy) setup step.
Site Tracking
Make BuddyPress aware of new posts and new comments from your site.
N.B. 「Network mode」 is a feature of WordPress that needs to be manually enabled and configured first. Instructions for enabling this can be found on the WordPress codex WP Codex – Create A Network

Required Components
The following components are required by BuddyPress and cannot be turned off.

BuddyPress Core: It『s what makes [time travel] BuddyPress possible!
Community Members: Everything in a BuddyPress community revolves around its members.

Settings > BuddyPress > Pages

BuddyPress components are rendered as WordPress Pages in BuddyPress. You』ll recall that the above Pages were created and associated to respective BP components in Step 2 of the Installation Wizard.

Directories
Associate a WordPress Page with each BuddyPress component directory.

Activity Streams
Discussion Forums
User Groups
Members

Registration
Associate WordPress Pages with the following BuddyPress Registration pages.

Register
Activate

Settings > BuddyPress > Settings

Disable BuddyPress to WordPress profile syncing? (default: No)
Hide admin bar for logged out users? (default: No)
Disable avatar uploads? Gravatars will still work (default: No)
Disable user account deletion? (default: No)
Disable activity stream commenting on blog and forum posts? (default: No)
Restrict group creation to Site Admins? (default: No)

Settings > BuddyPress > Forums
Three choices are available: Group Forums only, Sitewide Forums only, or Group and Sitewide Forums. Proceed to the illustrated step-by-step guide to set up both forums.

Users > Profile Fields
Your users will distinguish themselves through their profile page. You must give them profile fields that allow them to describe themselves in a way that is relevant to the theme of your social network.
Note: Any fields in the first group will appear on the signup page.

Arrange profile fields by drag and drop
Move fields to different field groups by dragging onto tab
Activity Stream Admin Panel

升级到 1.6

升级到 1.6

Codex Home → Releases → Version 1.6 → Upgrading to 1.6
Upgrading to 1.6

Note: If you』re using a BuddyPress 1.2 install and you want to upgrade to 1.6, please upgrade to 1.5 first. Then follow this guide.

BuddyPress 1.6 is a brand-new release featuring many improvements and features. Read about these features and improvements here.
How to Upgrade
You can upgrade through the regular WordPress Update page found at Dashboard > Updates. (If you』re using WordPress Multisite, visit your 「Network Admin」 updates page.)
After upgrading, BuddyPress should prompt you to run the update wizard.
Update prompt
Click on this link.
You should now see the BuddyPress Update wizard. The first step details how BuddyPress now uses the new WordPress Toolbar instead of the older BuddyBar.
First step of BuddyPress Update Wizard
If you do not want to use the WP Toolbar, select the checkbox and click on 「Save & Next」.
Now finish the update process by clicking on the submit button for steps 2 and 3.
Congratulations! Go get yourself a pizza pie, you just updated to BuddyPress 1.6!
Important Changes to Know
There are a few things that have changed in BuddyPress 1.6 that may affect the functionality of your website; these changes are noted below.
I see the WordPress Toolbar. I like the older BuddyBar. How do I use the BuddyBar instead?
In BuddyPress 1.6, the decision was made to default the admin bar to use WordPress』 Toolbar.
If you disabled the WP Toolbar during the update process, you should be good to go!
If you somehow bypassed this step, don』t fret! It』s still possible to use the older BuddyBar by adding the following code snippet to /wp-content/plugins/bp-custom.php:
// disable the WP Toolbar and revert back to the BuddyBar
add_filter( 'bp_use_wp_admin_bar', '__return_false' );
Help! Where did the BuddyPress settings page go?
In BuddyPress 1.6, the decision was made to move the main BuddyPress admin page to 「Settings > BuddyPress」 and the Profile Fields admin page to 「Users > Profile Fields「.
To read the reason why, click here.

Twenty Twelve 二〇一二主题

Twenty Twelve 二〇一二主题

Codex Home → BuddyPress Theme Development → BP Theme Compatibility and the WordPress Default Themes → Twenty Twelve Theme
Twenty Twelve Theme

A. One column Layout
One Column Layout. Click on image to enlarge.1. Create a child theme of the Twenty Twelve theme.
2. Create a new file in your new child theme folder and name it buddypress.php.
3. Copy over the content of Twenty Twelve』s full-width.php file into the new buddypress.php file.
?12345678910111213141516171819     

        

                                                

    

 
4. The buddypress class is generated in the body tag automatically for all BuddyPress pages when it』s activated. To change the width of the layout from full-width to one column, you only need to open up your theme』s style.css file and add the following
?12345678@ media screen and (min-width: 600px) {       body.buddypress .site-content {        float: none;        margin-left: auto;        margin-right: auto;        width: 70%;       }}
– delete the space between @ and media in media query above.
5. Upload the Twenty Twelve child theme folder to server.
B. Full-width Layout
Full-width Layout. Click on image to enlarge.1. Create a child theme of the Twenty Twelve theme.
2. Create a new file in your new child theme folder and name it buddypress.php.
3. Copy over the content of Twenty Twelve』s full-width.php file into the new buddypress.php file.
?12345678910111213141516171819     

        

                                                

    

 
4. The buddypress class is generated in the body tag automatically for all BuddyPress when it』s activated. So you only need to open up your theme』s style.css file and add the following
?12345@ media screen and (min-width: 600px) {       body.buddypress .site-content {              width: 100%;       }}
– delete the space between @ and media in media query above.
5. Upload your Twenty Twelve child theme folder to server.
C. Two Column, Right Sidebar Layout
Two-column Layout. Click on image to enlarge.This is the default page layout of the Twenty Twelve theme. There is no need to do anything more if this is the layout you prefer for all your BuddyPress pages.
However, if you want to customize the sidebar content of all your BP pages, you can do so by: a) using a plugin like Widget Logic to assign widgets to specific pages by using conditional tags or b) by creating new buddypress.php and sidebar-buddypress.php files and registering a new widget area in your child theme』s functions.php file. The following steps are for the second option.
1. Create a child theme of the Twenty Twelve theme.
2. Create a new file in your new child theme folder and name it buddypress.php.
3. Copy the content of Twenty Twelve theme』s page.php file into the new buddypress.php file. Then change get_sidebar() to get_sidebar('buddypress') and save file.
?1234567891011121314151617181920     

        

                                                

    

 
4. If you don』t have a functions.php file in your child theme, create one. You』ll need to register the new widget area for your BP sidebar in that functions.php file like so:
?1234567891011121314 __( 'BuddyPress Sidebar Widget Area', 'mmechildtheme' ),        'id'             => 'bp-sidebar',        'description'    => __( 'Appears in the sidebar section of all BuddyPress pages.', 'mmechildtheme' ),        'before_widget'  => '

',        'before_title'      => '

',        'after_title'    => '

',    ) );}add_action( 'widgets_init', 'mme_register_bp_widgets_area' );
5. Create a new file in your child theme folder and name it sidebar-buddypress.php. Add the following code to set up the widget area then save file.
?1234567891011121314151617     

 
7. Upload your child theme folder to your server. You』ll need to add at least one widget to the BP Sidebar widget area,

安装群组和全站论坛 (v1.5)

安装群组和全站论坛 (v1.5)

Codex Home → Legacy Docs → Archived Section: Getting Started → Installing Group and Sitewide Forums (v1.5)
Installing Group and Sitewide Forums (v1.5)

Archived file. Good only up to BP 1.5 version

A step-by-step illustrated guide for installing the Group and/or Sitewide Forums (bbPress 2.0) for BuddyPress 1.5+ on WordPress 3.2.1 after completing the BuddyPress installation wizard.
Forums Setup
Forums in BuddyPress make use of the bbPress software to function and we made it easy for you to install from the wp-admin backend with a few clicks. Depending on your community』s requirements, you can choose to:

Set up new Forums for Groups only (internal bbPress setup),
Use Existing Installation of Forums for Groups only (internal bbPress setup – upgrading from BP 1.2+),
Set up Sitewide Forums only (integration with bbPress 2.0+ plugin – new in BP 1.5), or
Set up Forums for Groups and Sitewide Forums

Forums FAQ』s (Frequently Asked Questions)
What』s the difference between Forums for Groups and Sitewide Forums?
Forums for Groups:
Give each individual group its own discussion forum. Choose this if you』d like to keep your members』 conversations separated into distinct areas. You may use an existing bbPress installation if you have one.
Features:

Group Integration
Member Profile Integration
Activity Stream Integration
@ Mention Integration

In other words, the bbPress Forums for Groups in BuddyPress are fully integrated and attached to Groups instead of the categorical and hierarchical format available in the bbPress Sitewide Forums. The Group/Site/Super Admin has to enable the forum feature in the Group』s admin panel first.
Site Wide Forums:
Your site will have central forums that are not isolated to any specific group. Choose this if you』d like to have a central forum area for your members.
Features:

Central Discussion Area
Forum Plugins Available
Activity Stream Integration
@ Mention Integration

A. Installing Forums for Groups only
Step 1. Go to admin dashboard > BuddyPress > Forums. Click on "Install Group Forums"

Step 2. New bbPress Installation. You』ve decided to set a new bbPress for forum management in BuddyPress. This is very simple and is usually just a one click process. When you』re ready, hit the link below. Click on "Complete Installation"

Step 3. All done! Configuration settings have been saved to the file bb-config.php in the root of your WordPress install.

If you kept the original page name/slug, Forums, for your Group Forums during the Installation Wizard then just proceed to http://yoursite.com/forums and you』ll find the Group Forums Directory page.
If you changed the page name/slug to e.g. 「Our Forums」 by creating a new Page named 「Our Forums」 then associated it with the Discussion Forums in BuddyPress > Pages, re-run Dashboard > Settings > Permalinks > Save, then proceed to http://yoursite.com/our-forums
B. Use Existing Installation of Forums for Groups only
Step 1. If you already have an existing bbPress installation for Groups, go to admin dashboard > BuddyPress > Forums and click on "Use Existing Installation"

Step 2. Existing bbPress Installation
BuddyPress can make use of your existing bbPress install. Just provide the location of your bb-config.php file, and BuddyPress will do the rest. bb-config.php file location: (shows path where bb-config.php is expected to be found) Click on "Complete Installation"

Step 3. If the path to your existing bb-config.php was incorrect, you』ll receive an error message 「The bb-config.php file was not found at that location, please try again.」 Find where that bb-config.php is and make sure you have the right path when you go through the process again.
If the path to your existing bb-config.php is correct, you』ll receive a congratulatory message and you can proceed to home page and test drive your Group Forums.
Pages: 1 2 3 4

骨架组件

骨架组件

Codex Home → Legacy Docs → Archived Section: Plugin Development → Skeleton Component
Skeleton Component

Please refer to BP_Component API for more information.

The BuddyPress Skeleton Component is a plugin you can install to use as an example template for creating your own BuddyPress Components. NOTE: This plugin may be outdated to work with the current version of BuddyPress. Use the plugin as development example only and do not run on your production site.
The most up-to-date ( ! ) version can be found here:  https://github.com/boonebgorges/buddypress-skeleton-component/
Or maybe here, re BP Theme Compat : https://github.com/boonebgorges/buddypress-skeleton-component/tree/1.7

BP_User_Query

BP_User_Query

Codex Home → Developer Resources → BP_User_Query
BP_User_Query

BP_User_Query Class
The BP_User_Query class was introduced in BuddyPress 1.7 as part of making BuddyPress more scalable. The class lives in buddypress/bp-core/classes/class-bp-user-query.php.  Review the current class for additional arguments not listed here, such as:  member types and xprofile_query.

Accepted Parameters

type (optional)
Defines the type of users to return.

Accepted arguments: active, newest, popular, online, alphabetical, random
Default value: 'newest'

per_page (optional)
The number of users to display on a page before they are paginated to the next page.

Default value: 0

page (optional)
The page offset (together with per_page).

Default value: 1

user_id (optional)
Pass a single numeric user id to limit results to friends of that user. Requires the Friends component.

Default value: 0

search_terms (optional)
Terms to search by. Search happens across xprofile fields. Requires XProfile component.

Default value: false

include (optional)
An array or comma-separated list of user ids. Results will be limited to users in this list.

Default value: false

exclude (optional)
An array or comma-separated list of user ids. Results will not include any users in this list.

Default value: false

user_ids (optional)
An array or comma-separated list of user ids. When this parameter is passed, it will override all other parameters. BP User objects will be constructed using these IDs only. So the order of the ids will be preserved in the results.

Default value: false

meta_key (optional)
Limit results to users that have usermeta associated with this meta_key. Usually used with meta_value.

Default value: false

meta_value (optional)
When used with meta_key, limits results to users whose usermeta value associated with meta_key matches meta_value.

Default value: false

populate_extras (optional)
Boolean. Fetch extra meta for each user such as their full name, if they are a friend of the logged in user, their last activity time.

Default value: true

count_total (optional)
Determines how BP_User_Query will do a count of total users matching the other filter criteria. Default value is 『count_query』, which does a separate SELECT COUNT query to determine the total. 『sql_count_found_rows』 uses SQL_COUNT_FOUND_ROWS and SELECT FOUND_ROWS(). Pass an empty string to skip the total user count query.

Default value: 'count_query'

Usage
This class is called by functions like bp_has_members() via bp_core_get_users().
You can create your own instance [ TO-DO: create a why and how example ].
But usually you』ll just want to manipulate the parameters.
You can do that by using this hook in the class:
do_action_ref_array( 'bp_pre_user_query_construct', array( &$this ) );
//$this is a reference to the parameter array

Code Examples
Here』s an example using the bp_pre_user_query_construct hook. This example will affect the display of members on the Members page by not showing any of the members whose ids are in $this->custom_ids. It will not affect the display of members on pages like .../groups/some-group/members/ or in widgets, etc. We use the bp_before_directory_members hook instead of one of the other hooks, like bp_before_members_loop, because we want to adjust the 『All Members』 count too. Using this approach, we do not have to touch any template files.
class BP_Custom_User_Ids {

private $custom_ids = array();

public function __construct() {

$this->custom_ids = $this->get_custom_ids();

add_action( 'bp_pre_user_query_construct', array( $this, 'custom_members_query' ), 1, 1 );
add_filter( 'bp_get_total_member_count', array( $this, 'custom_members_count' ), 1, 1 );

}

private function get_custom_ids() {
global $wpdb;

// collection based on an xprofile field
$custom_ids = $wpdb->get_col("SELECT user_id FROM {$wpdb->prefix}bp_xprofile_data WHERE field_id = 8 AND value = 'no'");

return $custom_ids;
}

function custom_members_query( $query_array ) {

$query_array->query_vars['exclude'] = $this->custom_ids;

//in case there are other items like widgets using the members loop on the members page
remove_action( 'bp_pre_user_query_construct', array( $this, 'custom_members_query' ), 1, 1 );

}

function custom_members_count ( $count ) {

$new_count = count( $this->custom_ids );
return $count - $new_count;

}
}

function custom_user_ids( ) {

new BP_Custom_User_Ids ();

}
add_action( 'bp_before_directory_members', 'custom_user_ids' );

Preserve the Order
Have you ever wanted to preserve the order of ids passed into the members loop? Now you can by using the 『user_ids』 parameter:
function custom_members_query( $query_array ) {
$query_array->query_vars['user_ids'] = $this->custom_ids;
}

NB: the 『user_ids』 parameter will break pagination in versions less than BP 1.9. Ticket & Patch

Additional Resources
class BP_Group_Member_Query extends BP_User_Query
In most situations, bp_parse_args() is a better and easier approach to filtering members: Using bp_parse_args() to filter BuddyPress template loops/

BP_Component

BP_Component

Codex Home → Developer Resources → BP_Component
BP_Component

The BP_Component class is the basis of getting your plugin initiated into BuddyPress. You extend this class to create custom components. In fact, the core components extend this class to create each core component (members, activity, groups etc.)
This is the members component class which extends BP_Component:
class BP_Members_Component extends BP_Component {

/**
* Start the members component creation process
*
* @since BuddyPress (1.5)
*/
function __construct() {
parent::start(
'members',
__( 'Members', 'buddypress' ),
BP_PLUGIN_DIR
);
}

/**
* Include files
*
* @global BuddyPress $bp The one true BuddyPress instance
*/
function includes() {
$includes = array(
'actions',
'filters',
'screens',
'template',
'buddybar',
'adminbar',
'functions',
'notifications',
);
parent::includes( $includes );
}

/**
* Setup globals
*
* The BP_MEMBERS_SLUG constant is deprecated, and only used here for
* backwards compatibility.
*
* @since BuddyPress (1.5)
* @global BuddyPress $bp The one true BuddyPress instance
*/
function setup_globals() {
global $bp;

// Define a slug, if necessary
if ( !defined( 'BP_MEMBERS_SLUG' ) )
define( 'BP_MEMBERS_SLUG', $this->id );

$globals = array(
'slug' => BP_MEMBERS_SLUG,
'root_slug' => isset( $bp->pages->members->slug ) ? $bp->pages->members->slug : BP_MEMBERS_SLUG,
'has_directory' => true,
'search_string' => __( 'Search Members...', 'buddypress' ),
);

parent::setup_globals( $globals );

/** Logged in user ****************************************************/

// Fetch the full name for the logged in user
$bp->loggedin_user->fullname = bp_core_get_user_displayname( bp_loggedin_user_id() );

// Hits the DB on single WP installs so get this separately
$bp->loggedin_user->is_super_admin = $bp->loggedin_user->is_site_admin = is_super_admin( bp_loggedin_user_id() );

// The domain for the user currently logged in. eg: http://domain.com/members/andy
$bp->loggedin_user->domain = bp_core_get_user_domain( bp_loggedin_user_id() );

// The core userdata of the user who is currently logged in.
$bp->loggedin_user->userdata = bp_core_get_core_userdata( bp_loggedin_user_id() );

/** Displayed user ****************************************************/

// The domain for the user currently being displayed
$bp->displayed_user->domain = bp_core_get_user_domain( bp_displayed_user_id() );

// The core userdata of the user who is currently being displayed
$bp->displayed_user->userdata = bp_core_get_core_userdata( bp_displayed_user_id() );

// Fetch the full name displayed user
$bp->displayed_user->fullname = bp_core_get_user_displayname( bp_displayed_user_id() );

/** Profiles Fallback *************************************************/

if ( !bp_is_active( 'xprofile' ) ) {
$bp->profile = new stdClass;
$bp->profile->slug = 'profile';
$bp->profile->id = 'profile';
}

/** Default Profile Component *****************************************/
if ( !defined( 'BP_DEFAULT_COMPONENT' ) ) {
if ( bp_is_active( 'activity' ) && isset( $bp->pages->activity ) )
$bp->default_component = bp_get_activity_slug();
else
$bp->default_component = ( 'xprofile' == $bp->profile->id ) ? 'profile' : $bp->profile->id;

} else {
$bp->default_component = BP_DEFAULT_COMPONENT;
}

if ( bp_displayed_user_id() ) {
$bp->canonical_stack['base_url'] = bp_displayed_user_domain();

if ( bp_current_component() ) {
$bp->canonical_stack['component'] = bp_current_component();
}

if ( bp_current_action() ) {
$bp->canonical_stack['action'] = bp_current_action();
}

if ( !empty( $bp->action_variables ) ) {
$bp->canonical_stack['action_variables'] = bp_action_variables();
}

if ( !bp_current_component() ) {
$bp->current_component = $bp->default_component;
} else if ( bp_is_current_component( $bp->default_component ) && !bp_current_action() ) {
// The canonical URL will not contain the default component
unset( $bp->canonical_stack['component'] );
}
}
}

/**
* Setup BuddyBar navigation
*
* @global BuddyPress $bp The one true BuddyPress instance
*/
function setup_nav() {
global $bp;

// Add 'Profile' to the main navigation
if ( !bp_is_active( 'xprofile' ) ) {

// Don't set up navigation if there's no user
if ( !is_user_logged_in() && !bp_is_user() )
return;

$sub_nav = array();
$main_nav = array(
'name' => __( 'Profile', 'buddypress' ),
'slug' => $bp->profile->slug,
'position' => 20,
'screen_function' => 'bp_members_screen_display_profile',
'default_subnav_slug' => 'public', //bp 1.7 requires a default subnav. If no subnav use same slug as parent slug.
'item_css_id' => $bp->profile->id
);

// User links
$user_domain = bp_displayed_user_domain() ? bp_displayed_user_domain() : bp_loggedin_user_domain();
$profile_link = trailingslashit( $user_domain . $bp->profile->slug );

// Add the subnav items to the profile
$sub_nav[] = array(
'name' => __( 'Public', 'buddypress' ),
'slug' => 'public',
'parent_url' => $profile_link,
'parent_slug' => $bp->profile->slug,
'screen_function' => 'bp_members_screen_display_profile',
'position' => 10
);

parent::setup_nav( $main_nav, $sub_nav );
}
}

/**
* Sets up the title for pages and <br /> *<br /> * @global BuddyPress $bp The one true BuddyPress instance<br /> */<br /> function setup_title() {<br /> global $bp;</p> <p>if ( bp_is_my_profile() ) {<br /> $bp->bp_options_title = __( 'You', 'buddypress' );<br /> } elseif( bp_is_user() ) {<br /> $bp->bp_options_avatar = bp_core_fetch_avatar( array(<br /> 'item_id' => bp_displayed_user_id(),<br /> 'type' => 'thumb',<br /> 'alt' => sprintf( __( 'Profile picture of %s', 'buddypress' ), bp_get_displayed_user_fullname() )<br /> ) );<br /> $bp->bp_options_title = bp_get_displayed_user_fullname();<br /> }</p> <p>parent::setup_title();<br /> }<br /> }</p> <p>function bp_setup_members() {<br /> global $bp;<br /> $bp->members = new BP_Members_Component();<br /> }<br /> add_action( 'bp_setup_components', 'bp_setup_members', 1 );</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="posted-on"><span class="screen-reader-text">发布于 </span><a href="https://buddypress.wpwenku.com/document/bp_component" rel="bookmark"><time class="entry-date published" datetime="2021-12-25T06:19:23+08:00">2021 年 12 月 25 日</time><time class="updated" datetime="2021-12-31T14:06:00+08:00">2021 年 12 月 31 日</time></a></span><span class="comments-link"><a href="https://buddypress.wpwenku.com/document/bp_component#respond">Leave a comment</a></span> </footer><!-- .entry-footer --> </article><!-- #post-122 --> <article id="post-71" class="post-71 post type-post status-publish format-standard hentry category-document"> <header class="entry-header"> <h2 class="entry-title"><a href="https://buddypress.wpwenku.com/document/configuring-components" rel="bookmark">配置组件</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <span class="screen-reader-text">配置组件</span><p>Codex Home → Legacy Docs → Archived Section: Getting Started → Configuring Components<br /> Configuring Components</p> <p>Archived file. Good up to BP 1.6.5</p> <p>Settings > BuddyPress > Components panel<br /> Settings > BuddyPress > Pages panel<br /> Settings > BuddyPress > Settings panel<br /> Settings > BuddyPress > Forums panel<br /> Users > Profile Fields panel<br /> Activity Streams admin panel</p> <p>Settings > BuddyPress > Components<br /> Only the xProfiles and Activity Stream components are enabled by default. You can selectively enable any of the components by using the form and saving your choices. </p> <p>Available Components<br /> Each component has a unique purpose, and your community may not need each one.</p> <p>Extended Profiles<br /> Customize your community with fully editable profile fields that allow your users to describe themselves.<br /> Account Settings<br /> Allow your users to modify their account and notification settings directly from within their profiles.<br /> Friend Connections<br /> Let your users make connections so they can track the activity of others and focus on the people they care about the most.<br /> Private Messaging<br /> Allow your users to talk to each other directly and in private. Not just limited to one-on-one discussions, messages can be sent between any number of members.<br /> Activity Streams<br /> Global, personal, and group activity streams with threaded commenting, direct posting, favoriting and @mentions, all with full RSS feed and email notification support.<br /> User Groups<br /> Groups allow your users to organize themselves into specific public, private or hidden sections with separate activity streams and member listings.<br /> Discussion Forums<br /> Full-powered discussion forums built directly into groups allow for more conventional in-depth conversations. NOTE: This will require an extra (but easy) setup step.<br /> Site Tracking<br /> Make BuddyPress aware of new posts and new comments from your site.<br /> N.B. 「Network mode」 is a feature of WordPress that needs to be manually enabled and configured first. Instructions for enabling this can be found on the WordPress codex WP Codex – Create A Network</p> <p>Required Components<br /> The following components are required by BuddyPress and cannot be turned off.</p> <p>BuddyPress Core: It『s what makes [time travel] BuddyPress possible!<br /> Community Members: Everything in a BuddyPress community revolves around its members.</p> <p>Settings > BuddyPress > Pages<br /> BuddyPress components are rendered as WordPress Pages in BuddyPress. You』ll recall that the above Pages were created and associated to respective BP components in Step 2 of the Installation Wizard.</p> <p>Directories<br /> Associate a WordPress Page with each BuddyPress component directory.</p> <p>Activity Streams<br /> Discussion Forums<br /> User Groups<br /> Members</p> <p>Registration<br /> Associate WordPress Pages with the following BuddyPress Registration pages.</p> <p>Register<br /> Activate</p> <p>Settings > BuddyPress > Settings</p> <p>Disable BuddyPress to WordPress profile syncing? (default: No)<br /> Hide admin bar for logged out users? (default: No)<br /> Disable avatar uploads? Gravatars will still work (default: No)<br /> Disable user account deletion? (default: No)<br /> Disable activity stream commenting on blog and forum posts? (default: No)<br /> Restrict group creation to Site Admins? (default: No)</p> <p>Settings > BuddyPress > Forums<br /> Three choices are available: Group Forums only, Sitewide Forums only, or Group and Sitewide Forums. Proceed to the illustrated step-by-step guide to set up both forums.</p> <p>Users > Profile Fields<br /> Your users will distinguish themselves through their profile page. You must give them profile fields that allow them to describe themselves in a way that is relevant to the theme of your social network.<br /> Note: Any fields in the first group will appear on the signup page.</p> <p>Arrange profile fields by drag and drop<br /> Move fields to different field groups by dragging onto tab<br /> Activity Stream Admin Panel</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="posted-on"><span class="screen-reader-text">发布于 </span><a href="https://buddypress.wpwenku.com/document/configuring-components" rel="bookmark"><time class="entry-date published" datetime="2021-12-25T06:19:22+08:00">2021 年 12 月 25 日</time><time class="updated" datetime="2021-12-31T14:06:01+08:00">2021 年 12 月 31 日</time></a></span><span class="comments-link"><a href="https://buddypress.wpwenku.com/document/configuring-components#respond">Leave a comment</a></span> </footer><!-- .entry-footer --> </article><!-- #post-71 --> <nav class="navigation pagination" aria-label="文章分页"> <h2 class="screen-reader-text">文章分页</h2> <div class="nav-links"><a class="prev page-numbers" href="https://buddypress.wpwenku.com/category/document/page/16">上一页</a> <a class="page-numbers" href="https://buddypress.wpwenku.com/category/document/"><span class="meta-nav screen-reader-text">页 </span>1</a> <span class="page-numbers dots">…</span> <a class="page-numbers" href="https://buddypress.wpwenku.com/category/document/page/16"><span class="meta-nav screen-reader-text">页 </span>16</a> <span aria-current="page" class="page-numbers current"><span class="meta-nav screen-reader-text">页 </span>17</span> <a class="page-numbers" href="https://buddypress.wpwenku.com/category/document/page/18"><span class="meta-nav screen-reader-text">页 </span>18</a> <span class="page-numbers dots">…</span> <a class="page-numbers" href="https://buddypress.wpwenku.com/category/document/page/25"><span class="meta-nav screen-reader-text">页 </span>25</a> <a class="next page-numbers" href="https://buddypress.wpwenku.com/category/document/page/18">下一页</a></div> </nav> </main><!-- .site-main --> </section><!-- .content-area --> </div><!-- .site-content --> <footer id="colophon" class="site-footer" role="contentinfo"> <div class="site-info"> <p class="copyright">Copyright © 2025 <a href="https://buddypress.wpwenku.com">BuddyPress 文档</a>, All Rights Reserved. 自豪地采用文派。</p> </div><!-- .site-info --> </footer><!-- .site-footer --> </div><!-- .site --> <!--<p style="font-size:20px;color:red;">WP Chinese Switcher Plugin Debug Output: <br />默认 URL: <a href="https://buddypress.wpwenku.com/category/document/page/17">https://buddypress.wpwenku.com/category/document/page/17</a><br />当前语言 (空则是不转换): <br />Query String: <br />Request URI: /category/document/page/17<br />zh-tw URL: <a href="https://buddypress.wpwenku.com/zh-tw/category/document/page/17">https://buddypress.wpwenku.com/zh-tw/category/document/page/17</a><br />zh-hk URL: <a href="https://buddypress.wpwenku.com/zh-hk/category/document/page/17">https://buddypress.wpwenku.com/zh-hk/category/document/page/17</a><br />Category feed link: https://buddypress.wpwenku.com/category/document/feed<br />Search feed link: https://buddypress.wpwenku.com/search/test/feed/rss2/Rewrite Rules: <br />array (<br /> '(zh-tw|zh-hk|zh|zh-reset)/^wp-json/?$' => 'index.php?rest_route=/&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/^index.php/wp-json/?$' => 'index.php?rest_route=/&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/category/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/category/(.+?)/embed/?$' => 'index.php?category_name=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/category/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/category/(.+?)/?$' => 'index.php?category_name=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/tag/([^/]+)/embed/?$' => 'index.php?tag=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/tag/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?tag=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/tag/([^/]+)/?$' => 'index.php?tag=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_format=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_format=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/type/([^/]+)/embed/?$' => 'index.php?post_format=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/type/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?post_format=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/type/([^/]+)/?$' => 'index.php?post_format=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/embed/?$' => 'index.php?&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/page/?([0-9]{1,})/?$' => 'index.php?&paged=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/comment-page-([0-9]{1,})/?$' => 'index.php?&page_id=2&cpage=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/comments/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[2]&withcomments=1&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/comments/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[2]&withcomments=1&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/comments/embed/?$' => 'index.php?&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/search/(.+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/search/(.+)/embed/?$' => 'index.php?s=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/search/(.+)/page/?([0-9]{1,})/?$' => 'index.php?s=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/search/(.+)/?$' => 'index.php?s=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/author/([^/]+)/embed/?$' => 'index.php?author_name=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/author/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?author_name=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/author/([^/]+)/?$' => 'index.php?author_name=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&day=$matches[4]&feed=$matches[5]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&day=$matches[4]&feed=$matches[5]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&day=$matches[4]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&day=$matches[4]&paged=$matches[5]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&day=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&feed=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&feed=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/embed/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&paged=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/([0-9]{1,2})/?$' => 'index.php?year=$matches[2]&monthnum=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/embed/?$' => 'index.php?year=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/([0-9]{4})/?$' => 'index.php?year=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.?.+?/attachment/([^/]+)/?$' => 'index.php?attachment=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?attachment=$matches[2]&cpage=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.?.+?/attachment/([^/]+)/embed/?$' => 'index.php?attachment=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.?.+?)/embed/?$' => 'index.php?pagename=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?pagename=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.?.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?pagename=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.?.+?)/page/?([0-9]{1,})/?$' => 'index.php?pagename=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.?.+?)/comment-page-([0-9]{1,})/?$' => 'index.php?pagename=$matches[2]&cpage=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.?.+?)(?:/([0-9]+))?/?$' => 'index.php?pagename=$matches[2]&page=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/attachment/([^/]+)/?$' => 'index.php?attachment=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?attachment=$matches[2]&cpage=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/attachment/([^/]+)/embed/?$' => 'index.php?attachment=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/([^/]+)/embed/?$' => 'index.php?category_name=$matches[2]&name=$matches[3]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[2]&name=$matches[3]&feed=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[2]&name=$matches[3]&feed=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[2]&name=$matches[3]&paged=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?category_name=$matches[2]&name=$matches[3]&cpage=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/([^/]+)(?:/([0-9]+))?/?$' => 'index.php?category_name=$matches[2]&name=$matches[3]&page=$matches[4]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/([^/]+)/?$' => 'index.php?attachment=$matches[2]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?attachment=$matches[2]&cpage=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/.+?/[^/]+/([^/]+)/embed/?$' => 'index.php?attachment=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[2]&feed=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/embed/?$' => 'index.php?category_name=$matches[2]&embed=true&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[2]&paged=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/comment-page-([0-9]{1,})/?$' => 'index.php?category_name=$matches[2]&cpage=$matches[3]&variant=$matches[1]',<br /> '(zh-tw|zh-hk|zh|zh-reset)/(.+?)/?$' => 'index.php?category_name=$matches[2]&variant=$matches[1]',<br /> '^(zh-tw|zh-hk|zh|zh-reset)/?$' => 'index.php?variant=$matches[1]',<br /> 'sitemap_index\\.xml$' => 'index.php?sitemap=1',<br /> '([^/]+?)-sitemap([0-9]+)?\\.xml$' => 'index.php?sitemap=$matches[1]&sitemap_n=$matches[2]',<br /> '([a-z]+)?-?sitemap\\.xsl$' => 'index.php?yoast-sitemap-xsl=$matches[1]',<br /> '^wp-json/?$' => 'index.php?rest_route=/',<br /> '^wp-json/(.*)?' => 'index.php?rest_route=/$matches[1]',<br /> '^index.php/wp-json/?$' => 'index.php?rest_route=/',<br /> '^index.php/wp-json/(.*)?' => 'index.php?rest_route=/$matches[1]',<br /> '^wp-sitemap\\.xml$' => 'index.php?sitemap=index',<br /> '^wp-sitemap\\.xsl$' => 'index.php?sitemap-stylesheet=sitemap',<br /> '^wp-sitemap-index\\.xsl$' => 'index.php?sitemap-stylesheet=index',<br /> '^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$' => 'index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]',<br /> '^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$' => 'index.php?sitemap=$matches[1]&paged=$matches[2]',<br /> '^(zh-tw|zh-cn|zh-hk|zh-sg|zh-hans|zh-hant)/sitemap\\.xml$' => 'index.php?lang=$matches[1]',<br /> 'category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&feed=$matches[2]',<br /> 'category/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&feed=$matches[2]',<br /> 'category/(.+?)/embed/?$' => 'index.php?category_name=$matches[1]&embed=true',<br /> 'category/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]',<br /> 'category/(.+?)/?$' => 'index.php?category_name=$matches[1]',<br /> 'tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag=$matches[1]&feed=$matches[2]',<br /> 'tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag=$matches[1]&feed=$matches[2]',<br /> 'tag/([^/]+)/embed/?$' => 'index.php?tag=$matches[1]&embed=true',<br /> 'tag/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?tag=$matches[1]&paged=$matches[2]',<br /> 'tag/([^/]+)/?$' => 'index.php?tag=$matches[1]',<br /> 'type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_format=$matches[1]&feed=$matches[2]',<br /> 'type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_format=$matches[1]&feed=$matches[2]',<br /> 'type/([^/]+)/embed/?$' => 'index.php?post_format=$matches[1]&embed=true',<br /> 'type/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?post_format=$matches[1]&paged=$matches[2]',<br /> 'type/([^/]+)/?$' => 'index.php?post_format=$matches[1]',<br /> 'robots\\.txt$' => 'index.php?robots=1',<br /> 'favicon\\.ico$' => 'index.php?favicon=1',<br /> 'sitemap\\.xml' => 'index.php??sitemap=index',<br /> '.*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$' => 'index.php?feed=old',<br /> '.*wp-app\\.php(/.*)?$' => 'index.php?error=403',<br /> '.*wp-register.php$' => 'index.php?register=true',<br /> 'feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[1]',<br /> '(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[1]',<br /> 'embed/?$' => 'index.php?&embed=true',<br /> 'page/?([0-9]{1,})/?$' => 'index.php?&paged=$matches[1]',<br /> 'comment-page-([0-9]{1,})/?$' => 'index.php?&page_id=2&cpage=$matches[1]',<br /> 'comments/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[1]&withcomments=1',<br /> 'comments/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[1]&withcomments=1',<br /> 'comments/embed/?$' => 'index.php?&embed=true',<br /> 'search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[1]&feed=$matches[2]',<br /> 'search/(.+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[1]&feed=$matches[2]',<br /> 'search/(.+)/embed/?$' => 'index.php?s=$matches[1]&embed=true',<br /> 'search/(.+)/page/?([0-9]{1,})/?$' => 'index.php?s=$matches[1]&paged=$matches[2]',<br /> 'search/(.+)/?$' => 'index.php?s=$matches[1]',<br /> 'author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[1]&feed=$matches[2]',<br /> 'author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[1]&feed=$matches[2]',<br /> 'author/([^/]+)/embed/?$' => 'index.php?author_name=$matches[1]&embed=true',<br /> 'author/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?author_name=$matches[1]&paged=$matches[2]',<br /> 'author/([^/]+)/?$' => 'index.php?author_name=$matches[1]',<br /> '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]',<br /> '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]',<br /> '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true',<br /> '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]',<br /> '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]',<br /> '([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]',<br /> '([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]',<br /> '([0-9]{4})/([0-9]{1,2})/embed/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&embed=true',<br /> '([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]',<br /> '([0-9]{4})/([0-9]{1,2})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]',<br /> '([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&feed=$matches[2]',<br /> '([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&feed=$matches[2]',<br /> '([0-9]{4})/embed/?$' => 'index.php?year=$matches[1]&embed=true',<br /> '([0-9]{4})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[1]&paged=$matches[2]',<br /> '([0-9]{4})/?$' => 'index.php?year=$matches[1]',<br /> '.?.+?/attachment/([^/]+)/?$' => 'index.php?attachment=$matches[1]',<br /> '.?.+?/attachment/([^/]+)/trackback/?$' => 'index.php?attachment=$matches[1]&tb=1',<br /> '.?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',<br /> '.?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',<br /> '.?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?attachment=$matches[1]&cpage=$matches[2]',<br /> '.?.+?/attachment/([^/]+)/embed/?$' => 'index.php?attachment=$matches[1]&embed=true',<br /> '(.?.+?)/embed/?$' => 'index.php?pagename=$matches[1]&embed=true',<br /> '(.?.+?)/trackback/?$' => 'index.php?pagename=$matches[1]&tb=1',<br /> '(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?pagename=$matches[1]&feed=$matches[2]',<br /> '(.?.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?pagename=$matches[1]&feed=$matches[2]',<br /> '(.?.+?)/page/?([0-9]{1,})/?$' => 'index.php?pagename=$matches[1]&paged=$matches[2]',<br /> '(.?.+?)/comment-page-([0-9]{1,})/?$' => 'index.php?pagename=$matches[1]&cpage=$matches[2]',<br /> '(.?.+?)(?:/([0-9]+))?/?$' => 'index.php?pagename=$matches[1]&page=$matches[2]',<br /> '.+?/[^/]+/attachment/([^/]+)/?$' => 'index.php?attachment=$matches[1]',<br /> '.+?/[^/]+/attachment/([^/]+)/trackback/?$' => 'index.php?attachment=$matches[1]&tb=1',<br /> '.+?/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',<br /> '.+?/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',<br /> '.+?/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?attachment=$matches[1]&cpage=$matches[2]',<br /> '.+?/[^/]+/attachment/([^/]+)/embed/?$' => 'index.php?attachment=$matches[1]&embed=true',<br /> '(.+?)/([^/]+)/embed/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&embed=true',<br /> '(.+?)/([^/]+)/trackback/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&tb=1',<br /> '(.+?)/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&feed=$matches[3]',<br /> '(.+?)/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&feed=$matches[3]',<br /> '(.+?)/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&paged=$matches[3]',<br /> '(.+?)/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&cpage=$matches[3]',<br /> '(.+?)/([^/]+)(?:/([0-9]+))?/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&page=$matches[3]',<br /> '.+?/[^/]+/([^/]+)/?$' => 'index.php?attachment=$matches[1]',<br /> '.+?/[^/]+/([^/]+)/trackback/?$' => 'index.php?attachment=$matches[1]&tb=1',<br /> '.+?/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',<br /> '.+?/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',<br /> '.+?/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?attachment=$matches[1]&cpage=$matches[2]',<br /> '.+?/[^/]+/([^/]+)/embed/?$' => 'index.php?attachment=$matches[1]&embed=true',<br /> '(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&feed=$matches[2]',<br /> '(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&feed=$matches[2]',<br /> '(.+?)/embed/?$' => 'index.php?category_name=$matches[1]&embed=true',<br /> '(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]',<br /> '(.+?)/comment-page-([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&cpage=$matches[2]',<br /> '(.+?)/?$' => 'index.php?category_name=$matches[1]',<br /> )<br />Debug Data: <br />array (<br /> )</p>--> </body> </html> <!-- Dynamic page generated in 0.147 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2025-03-01 20:35:23 --> <!-- super cache --> <!-- plugin=object-cache-pro client=phpredis metric#hits=2672 metric#misses=63 metric#hit-ratio=97.7 metric#bytes=2376096 metric#prefetches=9 metric#store-reads=123 metric#store-writes=31 metric#store-hits=255 metric#store-misses=57 metric#sql-queries=33 metric#ms-total=166.42 metric#ms-cache=8.17 metric#ms-cache-avg=0.0534 metric#ms-cache-ratio=4.9 -->