示例#1
0
/**
 * 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);
}
示例#2
0
/**
 * 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' );
}