【问题标题】:How to create a dynamic url with wordpress userid or username?如何使用 wordpress 用户名或用户名创建动态 url?
【发布时间】:2020-06-29 10:06:19
【问题描述】:

我正在尝试实现一些可以创建以下结构的 URL

https://example.com/profile/<username>/notification

我想将此 URL 插入另一个插件中,该插件将使用此动态链接创建一个导航按钮。

我使用了这个代码:

<?php 


include($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');

global $wpdb;

global $current_user;
get_currentuserinfo();

$c = $current_user->ID;

 ?>

       <option value="<?php echo ‘../profile/'.$c.'/notifications' ?>" <?php selected(myplugin::getSetting('NavigationTabBarProfile'), ‘../profile/'.$c.'/notifications' ) ?>><?php echo "My Notif" ?></option> 

但 url 始终显示登录 wp-admin 的管理员的用户 ID,而不是单击链接的当前用户。即使我以私密/隐身模式访问该链接,它仍会获取上次登录管理员的用户 ID。

我已经为此工作了几个小时,任何帮助将不胜感激。

【问题讨论】:

    标签: php wordpress custom-wordpress-pages


    【解决方案1】:

    你试过get_site_url() wordpress 功能吗?

    value="<?php echo get_site_url() . '/profile/' . $c . '/notifications'; ?>"
    

    (抱歉,我的声誉低于 50 岁,无法发表评论……)

    编辑:这是我调试wp_get_current_user()时的结果

    要进行这样的调试,我在模板页面的第一行写了这一行:

    wp_die( var_dump( wp_get_current_user() ) );
    

    您可以尝试将此行放在您的第一页(在插件的 wordpress 钩子上调用的那个)以查看发生了什么。如果用户不同,则说明当前用户已经在脚本上改变了。

    add_action( 'plugins_loaded', 'test_user' );
    
    function test_user() {
        wp_die( var_dump( wp_get_current_user() ) );
    }
    

    【讨论】:

    • 嗨,url 结构工作正常,只有 USERID ($c) 没有动态更新到当前登录用户。
    • get_currentuserinfo() 显示非管理员信息?您是否尝试过 wp_get_current_user() 而不是 glob var $current_user
    • 是的,我试过了。它仍然填充管理员的用户 ID,而不是登录并单击链接的用户。
    • mmmh 很抱歉,但是当我在家尝试时,它可以正常工作:/ 你确定你已经注册了另一个用户吗?如果您可以访问管理面板,则意味着您仍然是管理员。尝试更改 url 以访问您的管理面板,看看您是否有错误提示无法显示此页面。如果是,则意味着您确实与另一个帐户相关联。如果您有连接表单,则意味着您根本没有连接。如果您看到管理面板,则您仍以管理员身份连接。
    • 我在另一台设备上尝试过,没有登录任何帐户,但 USER ID 仍然是我登录的管理员帐户。
    【解决方案2】:

    Wordpress 使用“我”永久链接...所以没有任何不必要代码的答案将是 https://example.com/profile/me/notification

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    相关资源
    最近更新 更多