实施粘性文章


8

我想在论坛中实现类似于“粘性”文章的内容,其中一个或两个出现在顶部,然后是博客内容,并且我希望这些“粘性”文章可由主持人在前面进行编辑-结束。

模拟单个“粘性”文章的一种方法是将内容放置在类别描述中,但这仅适用于一篇文章,并且在前端不可编辑。

我愿意横向思考。也许我在想这一切都错了。这可以作为单独的博客类别来完成,该类别显示在主要文章下方(在一个模块中?),并且博客项目本身在单独的菜单项下进行管理。

Answers:


9

我能想到的最简单的方法是在文章上使用“功能”选项。在文章管理器中,将您要“粘贴”的任何文章标记为“精选”。

然后在博客布局的菜单项上,切换到“博客布局”,然后查找“文章顺序”。选择“精选文章顺序”将精选文章放在第一位。

这种方法的缺点是它使用“排序”作为次要指标,而不是日期。因此,文章将把精选文章放在首位,然后按照您在文章管理器中设置的顺序对其进行排序,而不必是最新的。(尽管如此,您仍可以订购粘性物品,这很好。)

我认为新文章将默认排在首位,因此应该大致按日期顺序排列,但是可能会有一些怪异之处。

[PW:次要顺序是功能顺序,而不是商品顺序,因此这是个问题,除非我修改核心代码以添加第三个顺序。我创建了Joomla Tracker项目#33685,并包含一个补丁。现在,我们需要做的就是测试并接受它。]


很好的答案,我永远不会那样使用特色文章订单。它“几乎”也可以工作,但是子排序很奇怪。我有1条现有的热门文章(A),显示在类别博客中。我创建了两个新文章B和C。尽管文章顺序为C,B,A(即,第一个是新文章),但它们仍显示为A,B,C。当我将B标记为有特色时,它将显示在A上方。我使用的是2.5.19。我需要检查一些代码以确认顺序-也许2.5中没有子顺序,而且只是随机的。
彼得·怀斯曼

是的,我实际上并未尝试执行此操作,但是我觉得其中有解决方案。手动订购将是一个巨大的痛苦……
David Fritsch 2014年

子顺序仅使用功能顺序,而不使用商品顺序。:( component / com_content / helpers / query.php:orderbySecondary
Peter Wiseman

1
我创建了一个Joomla Tracker物品,其中包括一个补丁,并向“特色文章订单”中添加了第三订单。joomlacode.org/gf/project/joomla/tracker/…–
彼得·怀斯曼

1
是的,该补丁为我修复了该问题。无特征的文章的fp.ordering值为NULL。FP表是一个外部联接,仅填充特色文章。
彼得·怀斯曼

7

马特·托马斯(Matt Thomas)最近描述了他在Joomla 3.x中创建粘性文章的方法,对此我也很赞成:

http://betweenbrain.com/notes/71-sticky-articles-in-joomla-3

本质上,您要做的就是按创建日期对文章进行排序,并将“粘性”文章的创建日期设置为将来的某个日期。


虽然这是迄今为止最好的答案,但仍然不理想。我本来想按修改后的日期排序,但这不是用户可更改的。对于非粘性项目的顺序,发布日期将比创建日期更具逻辑意义,但是粘性文章将在将来到目前为止发布,永远不会出现。所以我想创建日期是必须的。或者...我可以在每次更新后破解核心代码(前景不太理想)。
彼得·怀斯曼

好吧,那是肯定的另一种选择。但是,可以使用com_content / category / default.php的模板替代和“粘性”文章中的硬编码(而不是hack核心)来直接引用其ID。我建议只在潜在客户文章部分上方插入一个新部分以包含该内容。
塞思·沃伯顿

像这样吗 在blog.php中。有没有更好的方法来获取文章?这只是一篇固定文章,将适用于所有类别的博客。我想要与类别相对应的“粘性”文章。<div class =“ items-sticky”> <?php $ stickymodel = JModelLegacy :: getInstance('Article','ContentModel'); $ this-> item = $ stickymodel-> getItem(142); echo $ this-> loadTemplate('item'); ?> </ div>
彼得·怀斯曼

这可能导致SEO出现问题,尤其是依赖日期的任何模式标记。如果Google认为尚未发表该文章,则可能不会为其编制索引。
Carl Whalley

1

我对此不太确定,

在文章管理器中设置顺序。您可以在此处将订单设置为负值(例如-10)。这样,文章将保持领先地位。我认为这在某种程度上取决于菜单中的设置(必须对文章进行排序的高级设置)。


不幸的是,由于无法手动设置数值以进行订购,因此我认为该方法无法在Joomla 3中使用。
brainbrain 14:46

1

如果您想做一个Override模板,您可以尝试的另一种选择是复制结果的输出,并按日期制作第一篇精选文章和第二篇文章。

或者对于可以使用模块的侧边栏等位置,您可以对其进行排序,以便第一个显示标题具有精选文章,第二个隐藏标题具有按日期排序。

就像思想...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.