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,

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/

配置組件 (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

多站點的隔離 X-profile 字段

多站點的隔離 X-profile 字段

Codex Home → BuddyPress Theme Development → User Submitted Guides → Segregated X-Profile Fields for Multisite
Segregated X-Profile Fields for Multisite

Out of the box, all sites in a multisite install will share BuddyPress tables. That means that with a component like Extended Profiles, all sites will share the same profile fields, and changing them in one site will affect all others. However, with a few modifications you can create separate tables for each site, so Extended Profile Fields work independently on the network.
To do this, you need to modify the DB create queries for new sites, so when creating a new site, the tables for Extended Profiles will be automatically created. Once the tables are created, the $bp global entries for these table names will need to be modified, so at runtime the specific site』s newly created Extended Profile tables are accessed, not the shared ones.
This code will not create dummy content, so for every new site you will need to create a Profile Fields group and add profile fields to it manually. Add the following code to a functionality plugin network activated on your multisite install:

add_action('dbdelta_create_queries', 'add_custom_bp_xprofile_tables');

function add_custom_bp_xprofile_tables($sql) {
global $wpdb;
if ( ! empty($wpdb->charset) )
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
if ( ! empty($wpdb->collate) )
$charset_collate .= " COLLATE $wpdb->collate";

$sql[] = "CREATE TABLE {$wpdb->prefix}bp_xprofile_groups (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(150) NOT NULL,
description mediumtext NOT NULL,
group_order bigint(20) NOT NULL DEFAULT '0',
can_delete tinyint(1) NOT NULL,
KEY can_delete (can_delete)
) {$charset_collate};";

$sql[] = "CREATE TABLE {$wpdb->prefix}bp_xprofile_fields (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
group_id bigint(20) unsigned NOT NULL,
parent_id bigint(20) unsigned NOT NULL,
type varchar(150) NOT NULL,
name varchar(150) NOT NULL,
description longtext NOT NULL,
is_required tinyint(1) NOT NULL DEFAULT '0',
is_default_option tinyint(1) NOT NULL DEFAULT '0',
field_order bigint(20) NOT NULL DEFAULT '0',
option_order bigint(20) NOT NULL DEFAULT '0',
order_by varchar(15) NOT NULL DEFAULT '',
can_delete tinyint(1) NOT NULL DEFAULT '1',
KEY group_id (group_id),
KEY parent_id (parent_id),
KEY field_order (field_order),
KEY can_delete (can_delete),
KEY is_required (is_required)
) {$charset_collate};";

$sql[] = "CREATE TABLE {$wpdb->prefix}bp_xprofile_data (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
field_id bigint(20) unsigned NOT NULL,
user_id bigint(20) unsigned NOT NULL,
value longtext NOT NULL,
last_updated datetime NOT NULL,
KEY field_id (field_id),
KEY user_id (user_id)
) {$charset_collate};";

$sql[] = "CREATE TABLE {$wpdb->prefix}bp_xprofile_meta (
id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
object_id bigint(20) NOT NULL,
object_type varchar(150) NOT NULL,
meta_key varchar(255) DEFAULT NULL,
meta_value longtext DEFAULT NULL,
KEY object_id (object_id),
KEY meta_key (meta_key)
) {$charset_collate};";
return $sql;
}

add_action( 'bp_init', 'modify_bp_global_xprofiles_tablenames' );
add_action( 'switch_blog', 'modify_bp_global_xprofiles_tablenames' );

function modify_bp_global_xprofiles_tablenames() {
global $bp, $wpdb;
$bp->profile->table_name_data = $wpdb->prefix . 'bp_xprofile_data';
$bp->profile->table_name_groups = $wpdb->prefix . 'bp_xprofile_groups';
$bp->profile->table_name_fields = $wpdb->prefix . 'bp_xprofile_fields';
$bp->profile->table_name_meta = $wpdb->prefix . 'bp_xprofile_meta';
}

骨架組件

骨架組件

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

從舊論壇遷移到 bbPress 2.2+

從舊論壇遷移到 bbPress 2.2+

Codex Home → Getting Started → User Submitted Guides → Migrating from old forums to bbPress 2.2+
Migrating from old forums to bbPress 2.2+

So you』ve been using BuddyPress』 built-in group forums since BuddyPress 1.5, but would like to use the new bbPress plugin to power your forums instead.
Gotcha.  You』ll need to migrate your existing group forum content over to bbPress as well.  Don』t worry!  This is what this article is all about.
Let』s get started!
(1) Backup your database
It』s always wise to backup your database, just in case you need to restore your database backup if migration fails.
(2) Install bbPress 2.3 or higher (if you』re using bbPress 2.2, upgrade to 2.3)
Install bbPress and activate it.
Also make sure you』re using at least BuddyPress 1.6.1.
(3) Remove 「Forums」 page from BuddyPress

In the the WP admin dashboard navigate to 「Settings > BuddyPress「.  Click on the 「Pages」 tab.
Under 「Discussion Forums「, select 「None」 and save.

(4) Disable BuddyPress』 Forums Component

In the WP admin dashboard, navigate to 「Settings > BuddyPress「.  Click on the 「Components」 tab.
Uncheck 「Group Forums (Legacy)」 and save.

(5) Import old forums to bbPress 2

In the WP admin dashboard, navigate to 「Tools > Forums「
(Note: if using Members plugin, you may need to assign forum capabilities to the Administrator Role. Go to Users->Roles.)
Click on the 「Import Forums」 tab.
Under 「Select Platform」, make sure 「bbPress1」 is selected.
For 「Database Name」, 「Database User」, 「Database Password」, use the values as set in wp-config.php.
Under 「Table Prefix」, type in your bbPress prefix. For most users, this will be 「wp_bb_「, however if you used a different table prefix, check your table prefix in bb-config.php and append 「bb_」 to whatever is listed there.
Click on the 「Start」 button.

(6) Repair bbPress 2 forum relationships

In the WP admin dashboard, navigate to 「Tools > Forums「
Check the first option and hit 「Repair「.
Next, check the second option and hit 「Repair「.  Keep doing this until you have completed each option on this page.

(7) Configure bbPress settings for BuddyPress

In the WP admin dashboard, navigate to 「Settings > Forums「
Make sure 「Enable Group Forums」 is checked
Under 「Group Forums Parent「, ensure 「Group Forums」 is selected.

(8) Make 「Forums」 page a sitewide index (optional)

In the WP admin dashboard, navigate to 「Pages「
Find your old BuddyPress forums page (usually named 「Forums」) and edit that page.
In the post content, type in `[bbp-topic-index]`
This will use bbPress』 topic index shortcode to display the most recent topics on our forums page.
For more on bbPress shortcodes, check out the codex article.

配置組件 (v1.5)

配置組件 (v1.5)

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

Archived file. Good up to BP 1.5 version

After activating BuddyPress 1.5+ and going through the new installation wizard, there will be five new admin panels where you will be able to configure the plugin further

BuddyPress > Components panel
BuddyPress > Pages panel
BuddyPress > Settings panel
BuddyPress > Forums panel
BuddyPress > Extended Profile Fields panel

For single WordPress installations, you』ll find the BuddyPress menu in the regular wp-admin dashboard. For WordPress Multisite installations, you』ll find the BuddyPress menu in the Network Admin dashboard.
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.

BuddyPress > Pages

BuddyPress components are rendered as WordPress Pages in BuddyPress 1.5. 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

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)

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.

BuddyPress > 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.

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/zh-hk/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/zh-hk/document/bp_component#respond">Leave a comment</a></span> </footer><!-- .entry-footer --> </article><!-- #post-122 --> <article id="post-116" class="post-116 post type-post status-publish format-standard hentry category-document"> <header class="entry-header"> <h2 class="entry-title"><a href="https://buddypress.wpwenku.com/zh-hk/document/creating-a-plugin" rel="bookmark">創建插件</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <span class="screen-reader-text">創建插件</span><p>Codex Home → BuddyPress Plugin Development → Creating a Plugin<br /> Creating a Plugin</p> <p> This article goes through the steps you need to follow, and things to consider when creating a well-structured BuddyPress Plugin.<br /> Plugin Name<br /> The first task in creating a BuddyPress Plugin is to think about what the Plugin will do, and make a (hopefully unique) name for your Plugin. Check out Plugins and the other repositories it refers to, to verify that your name is unique; you might also do a Google search on your proposed name. Most Plugin developers choose to use names that somewhat describe what the Plugin does; for instance, a weather-related Plugin would probably have the word 「weather」 in the name. The name can be multiple words.<br /> Plugin Files<br /> The next step is to create a PHP file with a name derived from your chosen Plugin name. For instance, if your Plugin will be called 「Fabulous Functionality」, you might call your PHP file fabfunc.php. Again, try to choose a unique name. People who install your Plugin will be putting this PHP file into the BuddyPress Plugin directory in their installation, wp-content/plugins/, so no two Plugins they are using can have the same PHP file name.<br /> Another option is to split your Plugin into multiple files. Your BuddyPress Plugin must have at least one PHP file; it could also contain JavaScript files, CSS files, image files, language files, etc. If there are multiple files, pick a unique name for a file directory and for the main PHP file, such as fabfunc and fabfunc.php in this example, put all your Plugin』s files into that directory, and tell your Plugin users to install the whole directory under wp-content/plugins/. However, an installation can be configured for wp-content/plugins to be moved, so you must use plugin_dir_path() and plugins_url() for absolute paths and URLs. See: http://codex.BuddyPress.org/Determining_Plugin_and_Content_Directories for more details.<br /> In the rest of this article, 「the Plugin PHP file」 refers to the main Plugin PHP file, whether in wp-content/plugins/ or a sub-directory.<br /> Readme File<br /> If you want to host your Plugin on https://wordpress.org/extend/plugins/, you also need to create a readme.txt file in a standard format, and include it with your Plugin. See https://wordpress.org/extend/plugins/about/readme.txt for a description of the format.<br /> Note that the WordPress plugin repository takes the 「Requires」 and 「Tested up to」 versions from the readme.txt in the stable tag.<br /> Home Page<br /> It is also very useful to create a web page to act as the home page for your BuddyPress Plugin. This page should describe how to install the Plugin, what it does, what versions of BuddyPress it is compatible with, what has changed from version to version of your Plugin, and how to use the Plugin.<br /> File Headers<br /> Now it』s time to put some information into your main Plugin PHP file.<br /> Standard Plugin Information<br /> The top of your Plugin』s main PHP file must contain a standard Plugin information header. This header lets BuddyPress recognize that your Plugin exists, add it to the Plugin management screen so it can be activated, load it, and run its functions; without the header, your Plugin will never be activated and will never run. Here is the header format:</p> <p>The minimum information BuddyPress needs to recognize your Plugin is the Plugin Name line. The rest of the information (if present) will be used to create the table of Plugins on the Plugin management screen. The order of the lines is not important.<br /> So that the upgrade mechanism can correctly read the version of your plugin it is recommended that you pick a format for the version number and stick to it between the different releases. For example, x.x or x.x.x or xx.xx.xxx<br /> The License slug should be a short common identifier for the license the plugin is under and is meant to be a simple way of being explicit about the license of the code.<br /> Important: file must be in UTF-8 encoding.<br /> License<br /> It is customary to follow the standard header with information about licensing for the Plugin. Most Plugins use the GPL2 license used by BuddyPress or a license compatible with the GPL2. To indicate a GPL2 license, include the following lines in your Plugin:</p> <p>Programming Your Plugin<br /> Now, it』s time to make your Plugin actually do something. This section contains some general ideas about Plugin development, and describes how to accomplish several tasks your Plugin will need to do.<br /> BuddyPress Plugin Hooks<br /> Many BuddyPress Plugins accomplish their goals by connecting to one or more BuddyPress Plugin 「hooks」. The way Plugin hooks work is that at various times while BuddyPress is running, BuddyPress checks to see if any Plugins have registered functions to run at that time, and if so, the functions are run. These functions modify the default behavior of BuddyPress.<br /> Template Tags<br /> Another way for a BuddyPress Plugin to add functionality to BuddyPress is by creating custom Template Tags. Someone who wants to use your Plugin can add these 「tags」 to their theme, in the sidebar, post content section, or wherever it is appropriate. For instance, a Plugin that adds geographical tags to posts might define a template tag function called geotag_list_states() for the sidebar, which lists all the states posts are tagged with, with links to the state-based archive pages the Plugin enables.<br /> To define a custom template tag, simply write a PHP function and document it for Plugin users on your Plugin』s home page and/or in the Plugin』s main PHP file. It』s a good idea when documenting the function to give an example of exactly what needs to be added to the theme file to use the function, including the .</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="posted-on"><span class="screen-reader-text">發佈於 </span><a href="https://buddypress.wpwenku.com/zh-hk/document/creating-a-plugin" 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:05:59+08:00">2021 年 12 月 31 日</time></a></span><span class="comments-link"><a href="https://buddypress.wpwenku.com/zh-hk/document/creating-a-plugin#respond">Leave a comment</a></span> </footer><!-- .entry-footer --> </article><!-- #post-116 --> <article id="post-96" class="post-96 post type-post status-publish format-standard hentry category-document"> <header class="entry-header"> <h2 class="entry-title"><a href="https://buddypress.wpwenku.com/zh-hk/document/template-pack-walkthrough-twenty-eleven" rel="bookmark">模板包演練 – Twenty Eleven</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <span class="screen-reader-text">模板包演練 – Twenty Eleven</span><p>Codex Home → Legacy Docs → Archived Section: Theme Development → Themes & the BuddyPress Template Pack → Template Pack Walkthrough – Twenty Eleven<br /> Template Pack Walkthrough – Twenty Eleven</p> <p>Archived file. Good only up to BP 1.6.5 version</p> <p>BP TEMPLATE PACK 1.2 == BUDDYPRESS 1.5 == WORDPRESS 3.2.1</p> <p>There are two ways to implement Step Three of the compatibility process:<br /> – First Method: Superimposing the HTML structure of your WordPress theme onto 16 BP template files which were transferred into your WP theme folder during the compatibility process or<br /> – Second Method: Creating the following files in your WordPress theme – header-buddypress.php, sidebar-buddypress.php and/or footer-buddypress.php<br /> We』ll use the second method to make Twenty Eleven compatible with BuddyPress. By the end of this article, you should have the basic child theme files required to make Twenty Eleven compatible with BP 1.5 using the BP Template Pack plugin:</p> <p>/bp-twentyeleven/</p> <p>header-buddypress.php<br /> sidebar-buddypress.php<br /> style.css</p> <p>Prelude: Create a Twenty Eleven Child Theme<br /> ( If you already have your own Twenty Eleven Child theme, skip this section and proceed to the Compatibility Process )<br /> 1. Create a new theme folder for your Twenty Eleven child theme. For this example, the child theme is called BP Twenty Eleven so we』ll name our theme folder bp-twentyeleven.<br /> 2. Create a style.css file and add it in the bp-twentyeleven folder with content below:<br /> <br /> /*<br /> Theme Name: BP Twenty Eleven<br /> Theme URI: https://codex.buddypress.org/<br /> Description: Twenty Eleven child theme for BuddyPress Compatibility Process<br /> Version: 1.0<br /> Author: mercime<br /> Author URI: https://codex.buddypress.org/<br /> Template: twentyeleven<br /> Tags: buddypress, two-column<br /> */<br /> @import url( ../twentyeleven/style.css );</p> <p>3. Upload the bp-twentyeleven folder with the style.css file within to your server at /wp-content/themes/<br /> N.B. We』ll be creating and uploading more files later during the compatibility process. For now, these are the basic files required for the child theme to be activated so that we can proceed with the BP compatibility process.<br /> Compatibility Process<br /> 1. After activating BuddyPress, go to dashboard Appearance > Themes and activate our child theme 「BP Twenty Eleven. At the top of the Themes panel, you』ll see a message with 3 different options to make your theme compatible with BuddyPress. Select update your existing WordPress theme</p> <p>2. Clicking on the above link will bring you to the 「Install Plugins」 panel. Click on 「Install」 link under BuddyPress Template Pack plugin.</p> <p>3. Click OK to install BuddyPress Template Pack plugin.</p> <p>4. Activate BuddyPress Template Pack plugin.</p> <p>5. Go to Appearance > BP Compatibility</p> <p>6. Step One: Moving template files automatically. Click on Move Template Files</p> <p>7. Templates moved successfully! Click on Continue to Step Three You only need to go through Step Two if there was a problem transferring the files.</p> <p>Pages: 1 2 3</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="posted-on"><span class="screen-reader-text">發佈於 </span><a href="https://buddypress.wpwenku.com/zh-hk/document/template-pack-walkthrough-twenty-eleven" 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:04+08:00">2021 年 12 月 31 日</time></a></span><span class="comments-link"><a href="https://buddypress.wpwenku.com/zh-hk/document/template-pack-walkthrough-twenty-eleven#respond">Leave a comment</a></span> </footer><!-- .entry-footer --> </article><!-- #post-96 --> <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/zh-hk/author/feibisi/page/16">上一頁</a> <a class="page-numbers" href="https://buddypress.wpwenku.com/zh-hk/author/feibisi/"><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/zh-hk/author/feibisi/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/zh-hk/author/feibisi/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/zh-hk/author/feibisi/page/25"><span class="meta-nav screen-reader-text">頁 </span>25</a> <a class="next page-numbers" href="https://buddypress.wpwenku.com/zh-hk/author/feibisi/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/zh-hk/">BuddyPress 文檔</a>, All Rights Reserved. 自豪地採用文派。</p> </div><!-- .site-info --> </footer><!-- .site-footer --> </div><!-- .site --> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/sites\/3\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/wpwenku-wei\/*","\/wp-content\/themes\/twentyfifteen\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <!--<p style="font-size:20px;color:red;">WP Chinese Switcher Plugin Debug Output: <br />默認 URL: <a href="https://buddypress.wpwenku.com/author/feibisi/page/17">https://buddypress.wpwenku.com/author/feibisi/page/17</a><br />當前語言 (空則是不轉換): zh-hk<br />Query String: <br />Request URI: /zh-hk/author/feibisi/page/17<br />zh-tw URL: <a href="https://buddypress.wpwenku.com/zh-tw/author/feibisi/page/17">https://buddypress.wpwenku.com/zh-tw/author/feibisi/page/17</a><br />zh-hk URL: <a href="https://buddypress.wpwenku.com/zh-hk/author/feibisi/page/17">https://buddypress.wpwenku.com/zh-hk/author/feibisi/page/17</a><br />Category feed link: https://buddypress.wpwenku.com/zh-hk/category/document/feed<br />Search feed link: https://buddypress.wpwenku.com/zh-hk/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>--><script src="https://buddypress.wpwenku.com/wp-content/plugins/wpchinese-switcher/assets/js/search-variant.min.js?ver=1.1" id="wpcs-search-js-js"></script> </body> </html> <!-- WP Chinese Switcher Full Page Converted. Target Lang: zh-hk --> <!-- Dynamic page generated in 2.442 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2025-06-23 02:10:51 --> <!-- super cache -->