如何查询Elementor已保存模板在站点中的使用位置与次数?
如何追踪Elementor已保存模板的使用位置与次数
针对Elementor已保存模板的使用追踪需求,以下是几种可靠的实现方案:
1. 数据库直接查询(精准统计)
Elementor的模板以自定义帖子类型elementor_library存储在wp_posts表中,页面/文章的Elementor编辑数据则存在wp_postmeta表的_elementor_data字段(需替换wp_为你的数据库表前缀)。
执行以下SQL查询可直接获取每个模板的使用次数及具体关联页面:
SELECT t.ID AS 模板ID, t.post_title AS 模板名称, COUNT(p.ID) AS 使用次数, GROUP_CONCAT(p.post_title SEPARATOR ', ') AS 关联页面 FROM wp_posts t LEFT JOIN wp_postmeta pm ON pm.meta_value LIKE CONCAT('%\"id\":', t.ID, '%') LEFT JOIN wp_posts p ON pm.post_id = p.ID WHERE t.post_type = 'elementor_library' AND pm.meta_key = '_elementor_data' AND p.post_status = 'publish' GROUP BY t.ID, t.post_title ORDER BY 使用次数 DESC;
该查询会自动匹配页面、文章及嵌套模板中引用的目标模板,结果按使用次数降序排列。
2. 自定义PHP函数(灵活扩展)
如果你具备开发能力,可在主题的functions.php中添加以下函数,实现模板使用数据的程序化获取:
function get_elementor_template_usage() { // 获取所有已发布的Elementor模板 $templates = get_posts([ 'post_type' => 'elementor_library', 'posts_per_page' => -1, 'post_status' => 'publish' ]); $usage_data = []; foreach ($templates as $template) { // 查询引用当前模板的所有页面、文章及其他模板 $used_items = get_posts([ 'meta_query' => [ [ 'key' => '_elementor_data', 'value' => '"id":' . $template->ID, 'compare' => 'LIKE' ] ], 'post_type' => ['page', 'post', 'elementor_library'], 'post_status' => 'publish', 'posts_per_page' => -1 ]); $usage_data[] = [ 'template_id' => $template->ID, 'template_name' => $template->post_title, 'usage_count' => count($used_items), 'used_in' => wp_list_pluck($used_items, 'post_title') ]; } return $usage_data; }
调用该函数后,可通过print_r(get_elementor_template_usage())查看结果,或进一步封装为后台管理页面展示。
3. 第三方插件(非开发友好)
- Elementor Template Usage Tracker:专门针对Elementor模板设计,可直接在模板列表页显示使用次数,点击即可查看具体关联的页面、文章及嵌套模板。
- WP Sheet Editor - Elementor Templates:以表格形式管理所有Elementor模板,内置使用统计列,支持批量筛选和导出数据。
注意事项
- 嵌套模板追踪:以上方案均支持捕获模板嵌套引用的情况,因为Elementor会将嵌套模板的ID写入父模板的
_elementor_data字段。 - 缓存清理:查询前建议清理站点缓存,确保统计数据的实时性。
- 数据库备份:执行SQL查询前务必备份数据库,避免误操作导致数据丢失。
内容的提问来源于stack exchange,提问作者Rob Dobson
相关产品推荐
相关产品推荐

