1

我正在基于 Wordpress 主题的现有网站上做一些工作,但使用了大约 15 个插件(包括 Buddypress)。其中一个特别是 WP Sliding Login|Dashboard 插件,它有一个指向用户活动源的链接。我在 wp-sliding-login-dashboard.php 文件中找到了创建该链接的代码:

  <?php
                if ( is_user_logged_in() ) {
                global $current_user;
                $username = $current_user->user_login;
                echo ' <li><a href="http://www.mywebsitename.com/members/' . $username . '/activity/">Activity Feed</a></li>';
                    }
                    ?>

我想使用此代码将用户发送到同一位置,但使用主页顶部的链接。不幸的是,主页链接都是使用 Wordpress 菜单创建的,据我所知,它只允许使用附加到现有页面的静态链接。

我是否创建一个虚拟页面来链接到该退出仅执行上述代码?这甚至可能吗?想象一个 5 岁的孩子试图读莎士比亚,你对我作为一名程序员的能力有所了解,所以请随意与我互动 - 即,如果你说,“哦,只需创建一个范围函数,而不是创建一个全局函数功能”,我会盯着你流口水和困惑。

为清晰起见:滑动登录菜单(WP-Sliding Login|Dashboard Plugin),在状态栏中显示目标 URL 为 www.ferrignofit.com/members/FerrignoFit/activity/(当前登录用户为 FerrignoFit): http ://i.imgur.com/NPvmCXU.jpg

主页基于 Wordpress 的菜单,我想访问上述 URL,但目前正在访问 www.ferrignofit.com/activity/,另一个页面:http: //i.imgur.com/dIiFpDC.jpg

4

1 回答 1

0

所以这里有一个针对这个特定问题的 jQuery 解决方案。通过查看您拥有的图像,您想要做的是针对动态 WordPress 菜单中的特定锚点。

您可能知道,您可以为 WordPress 菜单功能创建自定义链接……它只是让您设置标签和 URL。您应该创建这样的项目,并暂时给它一个 URL 的哈希值。

现在为该特定菜单项设置一个类,这样您就可以有一个很好的 jQuery 句柄来定位它(否则您可以使用 WordPress 为每个特定菜单项创建的动态类)。

如果你有一个类集,或者你知道你需要定位什么,那么你可以在你的菜单之前添加这个代码块。

<?php if (is_user_logged_in()){ ?>
  <script>
    $(document).ready(function(e) {    
      var targetNav = $('li.customClassName a');
      var userName = '<?php $current_user = wp_get_current_user(); echo $current_user->display_name;?>';
      var userUrl = 'http://www.mywebsitename.com/members/'+ userName +'/activity/';
      targetNav.attr('href',userUrl);
    });
  </script>
<?php } else { ?>
  <script>
    $(document).ready(function(e) {    
      var targetNav = $('li.customClassName a');
      targetNav.attr('href','http://www.stackoverflow.com');
    });
  </script>
<?php } ?>

请不要说我使用 PHP 来获取 WordPress 中的当前用户名,在我获取用户名并将其存储在userName变量中后,我使用它userUrl来设置我想要的路径。

另一方面,我正在使用is_user_logged_in(),因此如果用户实际上没有登录,您可以选择将链接设置为其他内容。因此,使用此if语句,两个代码块之一将由 PHP 输出。

一旦设置了两个变量,我只需使用 jQuery 定位我的菜单项并修改href属性以将哈希替换为路径和动态用户名。

虽然这不是混合 JS 和 PHP 的好习惯,但我想在这里了解别人可以提出的其他解决方案,所以我将其发布为针对您非常具体的问题的解决方案。

我用我自己的 WordPress 网站测试了这段代码,它可以工作,只要记住这段代码需要在 PHP 文件中,否则<script>标签中使用的 PHP 对服务器没有任何意义,如果它在.js文件中。

于 2013-07-26T02:04:17.470 回答