WPForms表单名称在数据库中的存储位置咨询
解决WPForms条目关联表单名称的问题
WPForms的表单名称存储在插件自定义数据表中,也可通过官方API安全获取,以下是两种可行方案:
1. 数据库直接关联查询
表单基础信息(含名称)默认存在{wp_prefix}wpforms表中,其中id字段对应条目表({wp_prefix}wpforms_entries)里的form_id,name字段即为表单名称。
可通过SQL关联查询一次性获取条目及对应表单名称:
SELECT e.*, f.name AS form_name FROM wp_wpforms_entries e INNER JOIN wp_wpforms f ON e.form_id = f.id
注意:将wp_替换为你的WordPress数据库前缀(若不是默认值)。
在PHP代码中结合WordPress的$wpdb类使用(避免硬编码前缀):
global $wpdb; // 查询所有带表单名称的条目 $entries_with_form_name = $wpdb->get_results( "SELECT e.*, f.name AS form_name FROM {$wpdb->prefix}wpforms_entries e INNER JOIN {$wpdb->prefix}wpforms f ON e.form_id = f.id" ); // 遍历使用示例 if ( $entries_with_form_name ) { foreach ( $entries_with_form_name as $entry ) { // 输出表单名称和条目ID(转义防止XSS) echo sprintf( '表单:%s | 条目ID:%d', esc_html( $entry->form_name ), absint( $entry->entry_id ) ); } }
2. 使用WPForms官方API(推荐)
直接操作数据库可能受插件版本更新影响,官方API更安全可靠:
// 假设已从条目中获取到form_id $form_id = absint( $entry->form_id ); // 获取表单名称 $form_name = wpforms()->form->get_name( $form_id ); // 表单存在时输出名称 if ( ! empty( $form_name ) ) { echo esc_html( $form_name ); }
该方法会自动处理表单不存在的情况,兼容WPForms后续版本迭代。
内容的提问来源于stack exchange,提问作者Giest95
相关产品推荐
相关产品推荐

