获取WordPress用户名以自定义URL

时间:2019-12-31 作者:Niels K

我当前正在尝试获取当前用户名以将其添加到url。用户应该能够导航到位于域下的自己的仪表板。com/用户名。是否有方法检索用户名并将其作为变量添加到url?

非常感谢。

2 个回复
SO网友:butlerblog

您只能在用户已登录(否则没有“当前”用户)的情况下执行此操作。根据您的具体用例,它可能是这样的:

if ( is_user_logged_in() ) {

    global $current_user;
    $current_user = wp_get_current_user();

    // get the username:
    $username = $current_user->user_login;

    // set up the URL:
    $url = home_url( $username );
}
以下是我在上面使用的核心WP功能的文档:

SO网友:Jeffrey

除了19年12月31日的答案之外,我认为这个答案结合了这个网站上给出的多个答案。但由于这个网站喜欢复制而不是引用,我将给出一个可能的解决方案,包括今天的问题(根据我当前的屏幕,1小时前)。

function prefixed_redirect() {
    global $wp;
    if ( home_url( $wp->request ) == \'your_url\' )  { // or maybe something more specific.
        require_once TEMPLATEPATH . \'/my-specific-template.php\';
    }
}
add_action( \'template_redirect\', \'prefixed_redirect\' );
我尚未测试此代码,但有以下参考支持:https://stackoverflow.com/questions/51028362/what-is-the-alternative-of-serverhttp-host-and-serverrequest-uri-forHow to load a new template page according to a particular URL?.

现在,在添加菜单的情况下,我有以下示例:

function prefixed_nav_menu_item( $items ) {
    $user = wp_get_current_user();
    $link = \'<li><a href="\' . get_permalink( $user>get( \'slug\' ) ) . \'">\' . $user->get( \'login\' ) . \'</a></li>\';
    $items = $items . $link;

    return $items;
}
add_filter( \'wp_nav_menu_items\', \'prefixed_nav_menu_item\' );
这也未经测试,但根据https://developer.wordpress.org/reference/functions/wp_get_current_user/https://developer.wordpress.org/reference/classes/wp_user/ 它会指引你走向正确的方向。

可能您的特定主题在格式化菜单项时有一个预定义的功能,您应该对此进行研究(主题模板文件是一个很好的起点)。

相关推荐

在WordPress网站上用MathJax编写LaTeX公式:最简单的方法(可能不会影响Header.php)?

我试图在我的网站的数学部分添加一些使用乳胶的数学公式,http://onlinemathbiz.com/linear-algebra/. 我已经安装了MathJax,可以从设置中看到它。然而,当我试图用Elemenator编辑上述网站时,我在显示数学方面遇到了问题。以下是我尝试的内容:我继续使用Elementor编辑它,然后首先选择小部件“文本编辑器”,然后选择“自定义HTML”,并尝试键入以下内容:$\\sqrt(2)$ [math] \\sqrt(2) [/math] 。。