/** * Returns a single user URL. * * @since 1.0.0 * @access public * @param int $user_id * @global object $wp_rewrite * @return string */ function mb_get_user_url($user_id = 0) { global $wp_rewrite; $user_id = mb_get_user_id($user_id); $nicename = get_the_author_meta('user_nicename', $user_id); if ($wp_rewrite->using_permalinks()) { $url = user_trailingslashit(trailingslashit(home_url(mb_get_user_slug())) . $nicename); } else { $url = add_query_arg(array('mb_custom' => 'users', 'author_name' => $nicename), home_url()); } return apply_filters('mb_user_url', $url, $user_id); }
/** * Sets up custom rewrite rules for pages that aren't handled by the CPT and CT APIs but are needed by * the plugin. * * @since 1.0.0 * @access public * @return void */ function mb_rewrite_rules() { $topic_type = mb_get_topic_post_type(); /* Overwrite the topic rewrite rules. */ add_filter("{$topic_type}_rewrite_rules", 'mb_forum_topic_rewrite_rules'); /* Get slugs. */ $user_slug = mb_get_user_slug(); $login_slug = mb_get_login_slug(); $edit_slug = mb_get_edit_slug(); /* Get query vars. */ $user_page_qv = 'mb_user_page'; /* Add rewrite tag for single user pages. */ add_rewrite_tag('%' . $user_page_qv . '%', '([^/]+)'); /* User archive rewrite rules. */ add_rewrite_rule($user_slug . '/?$', 'index.php?mb_custom=users', 'top'); add_rewrite_rule($user_slug . '/page/?([0-9]{1,})/?$', 'index.php?mb_custom=users&paged=$matches[1]', 'top'); /* User role archive rewrite rules. */ add_rewrite_rule($user_slug . '/roles/([^/]+)/page/?([0-9]{1,})/?$', 'index.php?mb_custom=users&mb_role=$matches[1]&paged=$matches[2]', 'top'); add_rewrite_rule($user_slug . '/roles/([^/]+)/?$', 'index.php?mb_custom=users&mb_role=$matches[1]', 'top'); add_rewrite_rule($user_slug . '/roles/page/?([0-9]{1,})/?$', 'index.php?mb_custom=roles&paged=$matches[1]', 'top'); add_rewrite_rule($user_slug . '/roles/?$', 'index.php?mb_custom=roles', 'top'); $user_pages = 'forums|topics|replies|bookmarks|topic-subscriptions|forum-subscriptions'; /* Single user rewrite rules. */ add_rewrite_rule($user_slug . '/([^/]+)/(' . $user_pages . ')/page/?([0-9]{1,})/?$', 'index.php?mb_custom=users&author_name=$matches[1]&' . $user_page_qv . '=$matches[2]&paged=$matches[3]', 'top'); add_rewrite_rule($user_slug . '/([^/]+)/(' . $user_pages . ')/?$', 'index.php?mb_custom=users&author_name=$matches[1]&' . $user_page_qv . '=$matches[2]', 'top'); add_rewrite_rule($user_slug . '/([^/]+)/?$', 'index.php?mb_custom=users&author_name=$matches[1]', 'top'); /* Login page. */ add_rewrite_rule($login_slug . '/?$', 'index.php?mb_custom=login', 'top'); $search_slug = trailingslashit(mb_get_root_slug()) . 'search'; add_rewrite_rule($search_slug . '/?$', 'index.php?mb_custom=search', 'top'); /* Edit page. */ //add_rewrite_rule( $edit_slug . '/?$', 'index.php?mb_custom=edit', 'top' ); }