2013-10-09 24 views
1

我第一次使用堆栈溢出,请原谅我,如果我犯了一个失误。在WordPress中创建类别特定的菜单

我是新来的PHP,目前正在构建我的第一个WordPress主题。我希望在网站的几个单独部分中提供一个侧栏菜单,该菜单仅显示您所在部分中其他页面的链接。例如,如果您正在查看部分A的帖子1,则侧面菜单将显示帖子的链接A部分的第2,3和4部分。菜单在A部分的所有帖子上都是相同的。B部分将具有显示其帖子的不同菜单。该网站将需要大约25-30个不同的部分。

我一直希望能够通过分类来做到这一点,但我当然可以开放其他选项。我试图用几种不同的方式取得成功。我觉得这应该很简单,我只是缺少一些基本的东西。

我想我的问题是调用所必需的信息,我开始它:

<?php if (is_category('tanzania')) : ?> 

    <?php wp_nav_menu(array(
    'theme_location' => 'tanzania-menu' 
    )) ?> 

<?php elseif (is_category('safrica')) : ?> 

    <?php wp_nav_menu(array(
    'theme_location' => 'safrica-menu' 
    )) 

<?php else : print('Nope.'); ?> 

<?php endif; ?> 

这并没有在所有的工作(这是我敢肯定是超级明显,你所有)。它会正确显示每个菜单,但只能在类别概览页面中显示。一旦你点击菜单中的链接,它会将你带到帖子的perma-url并且菜单消失。我发现这是因为in_category只能看到/ category /目录中的页面,但我不确定如何解决它。

另一个问题是让我的sidebar.php这么长。使用上述方法我基本上有一个大约80行的大开关。我不确定这是否糟糕,但似乎......是不明智的。每次我试图缩小它的时候,结果都没有成功。

感谢您对此的帮助,WP已经相当的学习曲线。

+0

欢迎来到SO!你可以显示一些你正在使用的PHP代码吗?此外,有了这个,它将有助于确定为什么它不能用于你想要的。这样,人们可以建议更改或改进代码的方法,而不必从头开始自己创建。 –

+0

谢谢马修!我会马上开始编辑! – user2859308

+0

欢迎来到SO!是的,这完全有可能 - 而且可以通过比现在的80行少得多的动态完成。如果您可以回答几个问题,我们将能够为您提供帮助。你能否确认你想要的是每个帖子边栏中的菜单,但菜单应该只显示同一类别中的其他帖子的链接(但不是你正在查看的帖子)?这样做需要对'single.php'的循环进行一些更新,并且'sidebar.php'中的另一个循环只循环当前类别(但不包括当前在列表中查看的文章)。 –

回答

0

这不符合您的要求,因为一旦离开分类页面,规则就不再适用。

您可以创建一大堆模板 - 每组页面一个。在模板中,您可以定义添加自定义菜单的自定义边栏。但这真的很笨重和耗时。

你真的,真的需要为访问者制作如此复杂的事情吗?如果您不断更改导航表单页面,他们会迷失方向并困惑不解,试图在网站上找到自己的方式。

+0

感谢您的回复!这不是主要的导航菜单,只是一个侧面菜单,使其更容易查看相关页面。我相当确信该网站的基本结构不会令人难以置信。我希望找到填充菜单的方法,以便用户不需要主导航栏中的大量下拉菜单。 – user2859308

+0

另一种方法是识别你想要一个特定菜单的每个页面,例如: 'is_page(array(tanzania,'safrica','zambia'));' http://codex.wordpress。组织/ Function_Reference/is_page – fisicx

相关问题