首页模块在Joomla文章中的显示

7
我在首页上有自定义的HTML和其他模块,这些模块被标记为仅在首页显示。同时,我在首页上还有带有“阅读更多”链接的文章。
问题是,当我点击这些“阅读更多”链接时,页面会打开并显示所有的首页模块,而文章则显示在这些模块下面。
我已检查了所有模块的设置,它们都被标记为仅在首页显示,但它们也显示在文章页面上。
请帮忙解决。

你在哪里设置模块只在主页上显示? - Hanny
如果您前往模块管理器并打开模块,您可以明确设置它们应该显示在哪些页面上 - 尝试使用这种方式而不是菜单分配。 - Hanny
那些文章成为您正在查看的页面的“子项”,这就是为什么您在那里看到了这些模块。我以前也遇到过这个问题,我想它与ItemId有关。 - Shaz
@Shaz,你说得对,你应该把你的评论变成答案——毕竟那就是答案。 :D - Craig
我该如何手动纠正这个问题? - AJ.
有一个类似的问题在这里:http://joomla.stackexchange.com/q/9902/120 - Neil Robertson
8个回答

8
这些文章成为您正在查看的页面的“子级”,所以您会在那里看到模块。
我以前遇到过这个问题,我想这与Itemid有关。
您可以使用高级模块管理器将这些模块仅分配给主页。
编辑: 手动解决方案,不使用AMM扩展程序。

请看:http://docs.joomla.org/How_to_control_module_display_when_linking_to_an_article_with_no_menu_item - Shaz
我安装了高级模块管理器,现在模块不仅在文章中不可见,而且也从我的主页消失了。 - AJ.
@AJ。你可以在他们的教程中找到所有信息http://www.nonumber.nl/extensions/advancedmodulemanager#tutorials 。起初可能有点困惑,但你可以在各种条件下分配模块。 - Shaz
您不必安装该组件仅在主页上不显示它们。我开发了很多Joomla网站 - 我只找到一个需要使用高级模块管理器的地方,因为它需要对模块进行一些非常自定义的控制。否则,您可以使用Joomla默认界面来控制模块,并仅在主页上显示它们。 - Hanny

5

您必须在任何 Joomla 菜单中发布您的文章所属的类别,以便这些文章获得自己的项目编号,因为它们是该类别的子级。

这是自从 1.5 版本起的 Joomla 默认行为。


我不明白。你说的“在Joomla菜单中发布类别”是什么意思? - AJ.
1
将您的文章所属的类别发布在菜单中,意味着创建新的菜单项类型=类别=该类别。 - Benn

2
每篇文章都需要一个菜单项或父菜单项,如果找不到,则其父菜单项是默认菜单项(主页菜单项)。因此,要解决此问题,您需要确保每个类别都有相应的菜单项,以确保每篇文章的父菜单项不是主页。这是可行的,因为每篇文章都有一个类别(“未分类”也算作一个类别)。
创建一个隐藏菜单,然后为每个类别创建一个“文章»类别列表”菜单项。
您可以在维基页面如何在链接到没有菜单项的文章时控制模块显示中找到更多文档。

0

这里是 Joomla 项目 ID 问题的解释和修复方法

http://www.joomlabamboo.com/blog/tutorials/how-to-avoid-the-joomla-menu-itemid-issue

当文章没有菜单项时,它们会显示分配给链接页面的模块,就像如果您有一个博客类别菜单项,您希望该菜单项下的任何博客都显示分配给父级的模块,而无需为每篇文章分配它们。 当您有一个隐藏组件输出的主页时,这是一个大问题,因为任何进一步的项目只会显示具有不同URL的主页。


0
我曾经遇到过与“最受欢迎”和“最近添加”的模块相同的问题,当我检查文章的语言并将“全部”更改为英语、芬兰语等时,问题得以解决。之后,一切都按照我的意愿运作。希望这也能对你有所帮助。

0

0
我曾经有同样的问题,安装Advance Module Manager(AMM)确实解决了我的问题。我所要做的就是进入特定的模块,这些模块我已经选择在首页显示(基于标准Joomla设置),然后在每个模块的“模块分配”选项下,有一个新的设置(来自AMM),其中有一个“首页”部分,我在每个模块上选择了“包括”设置(默认为“忽略”)。
这个“包括”的作用是确保只有首页(你真正的默认目录,而不是选择为“特色/首页”的Joomla文章)才会展示选择的模块,而不是子文章或其他文章(这就是我的问题所在)。

0

我在我的自定义Joomla 3.3模板中使用了以下的php代码片段:

if (
$_SERVER['REQUEST_URI'] == '/' or
$_SERVER['REQUEST_URI'] == '/index.php' or
$_SERVER['REQUEST_URI'] == '/home.html') { 
echo 'homepage html' 
} else { 
echo 'non-homepage html' }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接