在Wordpress菜单中创建动态站点地址

时间:2013-07-25 22:27:04

标签: wordpress dynamic hyperlink

我正在基于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菜单创建的,据我所知,只允许使用附加到现有页面的静态链接。

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

图像清晰度:滑动登录菜单(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

1 个答案:

答案 0 :(得分:0)

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

您可能知道,您可以为WordPress菜单功能创建自定义链接...它只是让您设置标签和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文件中。