【发布时间】:2013-10-09 18:00:38
【问题描述】:
我第一次使用stack-overflow,如果我做错了,请原谅我。
我是 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; ?>
这根本不起作用(我相信这对你们所有人来说都是非常明显的)。它正确显示每个菜单,但仅在类别概述页面上。一旦您单击菜单中的链接,它会将您带到帖子的永久网址,然后菜单就会消失。我发现这是因为 in_category 只能看到 /category/ 目录中的页面,但不确定如何修复它。
另一个问题是我的 sidebar.php 太长了。使用上述方法,我基本上有一个巨大的开关,大约 80 行。我不确定这是否不好,但似乎……不明智。每次我试图缩小它时,我都发现它根本不起作用。
感谢您在这方面的帮助,WP 的学习曲线相当不错。
【问题讨论】:
-
欢迎来到 SO!您能否展示一些您当前正在使用的 PHP 代码?此外,这将有助于确定为什么它不能满足您的需求。这样人们就可以提出改变或改进代码的方法,而不必自己从头开始创建。
-
谢谢你,马修!我马上开始编辑!
-
欢迎来到 SO!是的,这是完全可能的 - 并且可以用比您现在拥有的 80 行少得多的代码动态完成 :) 如果您能回答一些问题,我们将能够为您提供帮助。您能否确认您想要的是每个帖子侧栏中的菜单,但该菜单应仅显示指向同一类别中其他帖子的链接(而不是您当前正在查看的帖子)?这样做需要对
single.php的循环和sidebar.php中的另一个循环进行一些更新,该循环仅循环当前类别(但不包括列表中当前查看的帖子)。 -
谢谢威廉!我想要一个菜单,显示给定类别中的所有链接,包括你所在的那个。因此,您在 A 类中的帖子 2 上,然后您可以在 A 类中看到指向帖子 1、2、3 和 4 的链接。如果我可以更清楚或者我是否可以回答任何其他问题,请告诉我!再次感谢您!
标签: php wordpress wordpress-theming