You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Elementor Loop Grid同时调用多个Custom Post Types?

解决ACF Loop Grid同时调取多个自定义文章类型的方法

不需要额外插件,用ACF自带功能或自定义代码就能实现,以下是两种可行方案:

方案一:直接使用自定义查询(快速实现)

  • 编辑你的Loop Grid模板,在「Source」下拉菜单中选择Custom Query(自定义查询)
  • 在「Query Arguments」输入框中填入以下参数(替换成你的自定义文章类型slug):
    array(
      'post_type' => array('你的cpt1别名', '你的cpt2别名', '你的cpt3别名'),
      'posts_per_page' => 12, // 可按需调整显示条数
      'orderby' => 'date',
      'order' => 'DESC'
    )
    
  • 保存模板后,Loop Grid就会同时加载指定的所有自定义文章类型内容。

方案二:添加「所有自定义文章类型」选项到Source下拉(适合重复使用)

如果你需要频繁选择调取所有CPT,可以通过代码给Source菜单添加一个统一选项:

  • 打开主题(或子主题)的functions.php文件,添加以下代码:
    // 给ACF Loop的Source下拉添加「所有自定义文章类型」选项
    add_filter('acf/location/rule_values/post_type', 'add_all_cpt_option');
    function add_all_cpt_option($choices) {
        // 获取所有公开的非内置自定义文章类型
        $custom_post_types = get_post_types(array(
            '_builtin' => false,
            'public' => true
        ), 'names');
        
        if (!empty($custom_post_types)) {
            $choices['all_custom_post_types'] = '所有自定义文章类型';
        }
        return $choices;
    }
    
    // 匹配选项时修改查询参数,加载所有CPT
    add_filter('acf/loop/query', 'modify_loop_query_for_all_cpts');
    function modify_loop_query_for_all_cpts($query) {
        if (isset($query['post_type']) && $query['post_type'] === 'all_custom_post_types') {
            $custom_post_types = get_post_types(array(
                '_builtin' => false,
                'public' => true
            ), 'names');
            $query['post_type'] = $custom_post_types;
        }
        return $query;
    }
    
  • 保存文件后,回到Loop Grid编辑界面,Source下拉菜单会出现「所有自定义文章类型」选项,选择即可自动加载所有你创建的自定义文章类型内容。

内容的提问来源于stack exchange,提问作者John Gosselin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:15:17