首页 > 解决方案 > 如何正确地将参数传递给 WordPress 上付费会员专业版的 pmpro_login_forms_handler_nav 过滤器?

问题描述

我正在尝试将所需的参数传递给过滤器pmpro_login_forms_handler_nav以自定义登录表单下方的导航栏。该文档告诉传递具有特定格式和表单名称的数组。到目前为止,我在我的 functions.php 文件上尝试了这个:

add_filter('pmpro_login_forms_handler_nav', function (array $links, $form = 'login') {
    
    $links['a'] = array();
    $esqueceu_senha['class'] = '';
    $esqueceu_senha['href'] = 'https://www.google.com';
    $esqueceu_senha['id'] = '';
    $esqueceu_senha['target'] = '_blank';
    $esqueceu_senha['title'] = 'Testando';
    $links['a'][] = $esqueceu_senha;

      return $links;
    }, 10);

但是在我的结果中,不是只在导航上留下我想要的链接,而是在导航的末尾添加了一个打印的数组。像这样:

立即成为会员 | 忘记密码?| 大批

谁能帮我?

标签: phpwordpress

解决方案


刚刚找到解决方案。您可以直接传递链接。不需要像我使用的那样使用关联数组。请记住在返回之前清空链接数组:

add_filter('pmpro_login_forms_handler_nav', function (array $links, $form = 'login') {
    $links = array();
    //Esqueceu a senha
    $links[] = sprintf( '<a href="%s">%s</a>', esc_url( add_query_arg( 'action', urlencode( 'reset_pass' ), pmpro_login_url() ) ), 'Esqueceu a senha?' );
    
      return $links;
    }, 10);

推荐阅读