【问题标题】:Using variables in the URL on wordpress menu link在 wordpress 菜单链接的 URL 中使用变量
【发布时间】:2015-02-21 02:33:53
【问题描述】:

我正在使用 wordpress wp-admin 创建菜单。它在外观/菜单下。

我有一个指向 /members/ 的链接,但我真正需要的是指向 /members/$logged_user 的链接...

例如 /members/user_1 或 /members/user_2。

我该怎么做? 我不知道它是否重要,但我正在使用 buddypress 插件。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    我编写了一个简短的脚本,用于在 wordpress 菜单中添加动态 buddypress 链接。希望对你有帮助

    我在 wordpress 菜单中添加了自定义链接,将链接中的用户名替换为 --username-- 例子 http://website_name.com/members/--username--/messages/

    然后在function.php中添加这段代码

    add_filter( 'nav_menu_link_attributes', 'menu_override', 10, 3 );
    
    function menu_override( $atts, $item, $args ) {
        $user = wp_get_current_user();
        $newlink = str_replace("--username--", $user->user_login, $atts[href]);
        $atts[href] = $newlink;
        return $atts;
    }
    

    【讨论】:

    • 简洁干净。 WordPress 不支持菜单项 url 中的短代码,因为括号(即[/])已被删除,但很高兴看到支持基于您的方法的替代实现。你应该认真考虑把它做成一个插件。例如WordPress 菜单 URL 简码
    • 谢谢,但我相信最新版本的 Wordpress。默认情况下,我们在 wordpress 菜单中有 buddypress URL 选项
    • 老兄,我在搜索这样的东西 2 天 buddy-press 应该自然地支持这一点我知道他们已经登录注销了链接,但需要的是自定义链接功能,以便动态链接到特定组,主机链接的特定配置文件和消息
    【解决方案2】:

    默认菜单实际上没有该选项。但是您可以制作自己的 walker 函数,搜索关键字并将其替换为当前用户。

    http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function

    但是将链接放在带有一些静态 html 和所需 php 的菜单调用之外可能会更快,更易于管理。

    【讨论】:

      【解决方案3】:

      您可以使用BuddyPress Custom Profile Menu 插件来接近此功能,否则您将不得不编写使用wp_nav_menu() 的操作/过滤器的自定义代码。

      【讨论】:

        猜你喜欢
        • 2018-02-20
        • 1970-01-01
        • 2018-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多