【问题标题】:ExpressionEngine: Looping Through all the Entries in One CategoryExpressionEngine:循环遍历一个类别中的所有条目
【发布时间】:2011-03-18 20:51:42
【问题描述】:

我正在使用表达式引擎创建一个文档站点,使用 weblog 模块。我有许多类别,其中包含子类别。类别和子类别包含条目。

我想为每个类别创建一个页面,该页面输出该父类别中所有子条目和子类别的嵌套列表。顶部应该有一个面包屑导航,显示类别层次结构以及指向父类别的链接。

这是我的代码:

<!-- url /docs/category/category_id -->

<!-- Breadcrumb -->
<!-- This works on the page template, but on the category template it shows all the categories -->
{exp:weblog:entries weblog="docs" }
    {categories}
        <a href="{path='/category'}?category_id={category_id}&category_name={category_name}&category_description={category_description}">{category_name}</a> >
    {/categories}
    {title}
{/exp:weblog:entries}

<!-- List of Categories -->
<!-- This shows ALL of the categories. I want it to only show the parent category and its children -->

{exp:weblog:categories style="nested"}
    <h1><a href="{path='weblog/category'}"{category_name}</a></h1> 
    {exp:weblog:entries category="{category_id}"}
        <a href="{path='weblog/page'}">{title}</a>
    {/exp:weblog:entries}
{/exp:weblog:categories}

【问题讨论】:

    标签: php blogs expressionengine


    【解决方案1】:

    我没有时间为您编写代码,但我确实有时间为您指出(希望)正确的方向。一位名叫 Laisvunas 的 ExpressionEngine 开发人员创建了几个 EE 插件,用于处理 EE 类别及其与其他类别和条目的关系。

    我不会链接到所有这些,但他的developer page on Devot:ee 将它们全部列出。他创建的最受欢迎的类别插件是Child Categories,它可以满足您的大部分需求。如果他的(和其他)插件无法帮助您解决问题,请随时告诉我们。

    祝你好运!

    【讨论】:

    • 谢谢。会检查一下,让你知道它是否适合我。
    • 这不能回答我的问题。我正在寻找一种在表达式引擎中编写代码的方法,而不是付费插件。如果有办法编写附加组件,我应该可以自己编写,但我肯定不会为此付费。 -1
    • 对不起,亚当!作为“警告”,您应该知道许多 EE 附加组件是商业的(就像 EE 一样)。虽然您可以咨询EE API documentation 并在需要时构建自己的附加组件,但在附加组件上花费不到 100 美元通常比花费数十小时构建相同的功能要便宜得多。 EE 的核心类别标签有很多不足之处,因此我链接到的附加组件的存在和流行。祝你的项目好运!
    【解决方案2】:

    ---编辑---

    我后来写了一个插件来解决这个问题:
    https://github.com/adambom/Category-Inheritance-Plugin-for-ExpressionEngine

    -------------

    这就是我最终的做法。

    为了获取子类别列表,我传递了一个 URL 查询字符串参数 category_id,然后运行:

    <ul>
        {exp:query sql="SELECT cat_id as child_category_id, cat_name AS child_category_name FROM exp_categories WHERE parent_id = '<?php echo addslashes($_GET['category_id']) ?>' ORDER BY category_name ASC"}
            <li><a href="{path=/category/}?category_id={child_category_id}">{child_category_name}</a></li>
        {/exp:query}
    </ul>
    

    它只深了一层,但这是我能做到的最好的。

    此代码输出所有条目(必须对 url 进行硬编码):

    {exp:weblog:entries category="<?php echo $_GET['category_id'] ?>"}
        <p><a href="/simulate/docs2/index.php/page/{entry_id}">{title}</a></p>
    {/exp:weblog:entries}
    

    作为旁注,我不建议在任何事情上使用表达式引擎。对于博客,请使用 Wordpress。对于文档站点,请使用 wiki。我想我们将切换到 Rails 站点。

    【讨论】:

      【解决方案3】:

      GWcode CatMenu 是免费的用于处理输出类别(任意级别)的最佳插件。

      【讨论】:

        猜你喜欢
        • 2019-02-13
        • 2022-01-25
        • 1970-01-01
        • 2017-03-09
        • 1970-01-01
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多