• 265 0 分 41 秒 PHP 插件 Grav

    Grav Popular-Articles v1.0.1版本基础上做了优化

    关键改进说明

    1. 更灵活的路由过滤

      • strpos($key, $blogRoute . '/') === 0 改为 strpos($route, $blogRoute) === 0
      • 这样会匹配所有以 /blog 开头的路由,包括 /blog 本身和 /blog/*
    2. 增强调试功能

      • 添加详细的日志记录(在Grav日志中查看)
      • 在HTML中隐藏输出配置和数据结构(需开启调试模式)
      • 记录包含/排除的路由及原因
    3. 配置处理优化

      • 确保默认值与用户配置正确合并
      • 在Twig中输出配置用于前端验证
    4. 空状态处理

      • 当没有文章时显示友好提示

    Grav插件

    使用场景示例

    1. 在文章页显示当前文章阅读量 : {{ popular_articles.getViewsByRoute(page.route) }}

    2. 在文章中显示热门文章列表:

      {# 热门文章列表 #}
      {% if config.plugins['popular-articles'].enabled %}
      {# 获取文章列表 #}
      {% set articles_list = popular_articles.get() %}
      <ul>
      <li>热门文章</li>
      {# 文章列表 #}
      {% if articles_list|length > 0 %}
        {% for item in articles_list %}
          {% set article = item.page %}
          <li>
            <a href="{{ article.route }}"
               {% if article.title|length > 30 %}title="{{ article.title }}"{% endif %}
               style="display:flex; justify-content:space-between; align-items:center;">
              {% if article.title|length > 30 %}
                {{ article.title|slice(0, 27) ~ '...' }}
              {% else %}
                {{ article.title }}
              {% endif %}
              {{ item.views|default(0) }} 阅读
            </a>
          </li>
        {% endfor %}
      {% else %}
        <li>暂无热门文章数据</li>
      {% endif %}
      </ul>
      {% endif %}

    • 留言板:
    • 由 laok 于 Thu, 19 Jun 2025 16:57:09 留言:
      非常有价值
    • 由 laok 于 Thu, 19 Jun 2025 10:09:12 留言:
      第三次测试
    • 由 laok 于 Thu, 19 Jun 2025 10:06:24 留言:
      第二条测试
    • 由 laok 于 Thu, 19 Jun 2025 10:03:26 留言:
      测试