首页 / 中文教程 / 教程

在 Bricks 中查询以特定字母开头的文章

想在 Bricks 里显示所有以某个字母(比如 A)开头的文章?这篇教程给你方案。

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

想在 Bricks 里显示所有以某个字母(比如 A)开头的文章?这篇教程给你方案。

实现步骤

第 1 步:放大查询范围

在查询循环(Query Loop)或 Posts 元素的设置里,把 Posts per page 设为一个大于文章总数的数字。例如:站点共有 100 篇已发布文章,就把 Posts per page 设为 200(一个合理的、未来文章数量上限的估计值)。这样查询循环才会一次性取出全部文章,再由后面的代码过滤出「以指定字母开头」的那部分。

第 2 步:加入过滤代码

把下面代码加到子主题的 functions.php,或通过代码片段插件添加:

function wpse_298888_posts_where( $where, $query ) {
	global $wpdb;

	$starts_with = esc_sql( $query->get( 'starts_with' ) );

	if ( $starts_with ) {
		$where .= " AND $wpdb->posts.post_title LIKE '$starts_with%'";
	}

	return $where;
}
add_filter( 'posts_where', 'wpse_298888_posts_where', 10, 2 );

add_filter( 'bricks/posts/query_vars', function( $query_vars, $settings, $element_id ) {
	if ( $element_id === 'lgbeyi' ) {
		$query_vars['starts_with'] = 'A';
	}
	
	return $query_vars;
}, 10, 3 );

代码做了什么:

  • wpse_298888_posts_where 挂在 WordPress 的 posts_where 过滤器上,往 SQL 查询追加一条 post_title LIKE 'A%' 条件——只匹配标题以指定字母开头的文章;
  • bricks/posts/query_vars 过滤器把自定义查询变量 starts_with 注入到指定的 Bricks 查询中,并设为 'A'

第 3 步:替换元素 ID

把代码里的 lgbeyi 替换成你自己的查询循环/Posts 元素的 Bricks ID(选中元素后,在结构面板的 ID 字段里可以看到)。

改完保存,前端就能看到标题以 A 开头的文章列表了。想匹配其他字母,把 'A' 换成对应字母即可。

参考

需要帮忙?

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

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

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