首页 / 中文教程 / 教程

Bricks 相关文章:同作者的其他文章(PHP 查询编辑器实现)

单篇页展示当前文章作者写过的其他文章,排除当前文章。用 Bricks PHP 查询编辑器 + 动态数据 {author_meta:ID} {post_id} 一行参数搞定。

Ray Chan·2026-08-12·约 1 分钟

需求:单篇页列出同作者的其他文章

博客、新闻站常见布局:文章正文下方放一排“该作者的其他文章”,既增加页内停留时间,也顺手带动老文章流量。在 Bricks 里实现它,最直接的是用 Query Loop + PHP 查询编辑器——用动态数据把“当前文章的作者”和“当前文章的 ID”直接塞进查询参数里,不需要任何自定义函数。

PHP 查询编辑器配置

在单篇模板里添加 Query Loop 元素,开启查询后切到 PHP 查询编辑器(Query 类型选 Custom Query / PHP),粘贴以下参数:

return [
    'post_type' => 'post',          // 换成你的文章类型
    'posts_per_page' => 100,        // 大一点的数字,表示"全部"
    'no_found_rows' => true,
    'author' => {author_meta:ID},
    'post__not_in' => [ {post_id} ],
    'update_post_meta_cache' => false,
    'update_post_term_cache' => false,
];

参数逐行解释

  • post_type:要查询的文章类型,默认 post,按需换成 CPT 名称。
  • posts_per_page:取 100 条(“足够大”代表全部)。这是相关文章列表的典型做法,配合前端滚动或截断显示;如果明确只想要 N 篇,直接写 N 即可。
  • no_found_rows:设为 true 跳过总行数统计。列表不需要分页时能省一次 COUNT 查询,是 WordPress 官方推荐的性能优化项。
  • author核心{author_meta:ID} 是 Bricks 的动态数据标签,在当前单篇页上下文解析为当前文章作者的 ID,PHP 查询编辑器会把花括号里的动态数据自动解析成实际值。
  • post__not_in:排除当前文章,避免“相关文章”列表里出现正在看的那篇。{post_id} 解析为当前文章 ID。
  • update_post_meta_cache / update_post_term_cache:都设为 false。纯标题列表不需要元数据和分类缓存,省内存、加快查询。

动态数据在 PHP 查询里的妙用

这个方案最值得学习的一点:Bricks 的 PHP 查询编辑器支持动态数据解析authorpost__not_in 这些参数值里可以混写 {author_meta:ID}{post_id}{term_id} 等标签,Bricks 会在执行查询前把标签替换成当前上下文(单篇页 / 分类页 / 循环项)的真实值。

这意味着:同一个查询模板,放在文章页显示同作者文章,放在分类页自动变成“同分类文章”——只要把参数改成 'cat' => {term_id} 之类即可。一套查询,处处复用。

小结:同作者相关文章用 PHP 查询编辑器是最省事的实现——没有自定义函数、没有钩子,纯查询参数 + 动态数据。记住两个要点:author{author_meta:ID} 动态解析当前作者;post__not_in{post_id} 排除当前文章。想要相关度更高,把 author 换成同分类 + 同标签组合,或者按自定义字段匹配,思路完全一样。

需要帮忙?

用 Bricks 建站?我接客户项目。

从快速营销站到完整的 Bricks 建站,再到从 Elementor 迁移——我都做过。本站每篇教程都来自真实项目经验。告诉我你的需求,一个工作日内回复。

  • Bricks 建站与改版
  • Elementor / Divi → Bricks 迁移
  • Bricks → Astro / headless 性能升级
  • 速度优化,PageSpeed 95+ 目标