WordPress循环中存储info值到数组并插入链接参数的实现问题
实现方案
你可以直接用WordPress原生的add_query_arg函数生成带参数的链接,无需手动拼接字符串,同时可以自动处理参数的URL编码,避免特殊字符导致的链接错误。以下是修改后的完整代码:
global $wpdb; // 如果你需要存储所有循环的info相关值,可以先在循环外声明空数组 $all_info_data = []; $result = $wpdb->get_results( "SELECT * FROM wpeb_wpforms_entry_fields"); foreach ( $result as $print ) { // 1. 存储当前循环的所有info相关值到数组 $current_info = [ 'id' => $print->id, 'name' => $print->info, 'phone' => $print->mobile, 'course' => $print->course, 'address' => $print->address, 'city' => $print->city, 'zip' => $print->zip, 'entry_id' => $print->entry_id, 'form_id' => $print->form_id ]; // 如果需要把当前数据存到全局的所有数据数组里,执行下面这行 $all_info_data[] = $current_info; // 2. 生成带参数的链接,第二个参数是目标页面路径,可根据实际需求修改 $target_url = add_query_arg([ 'value1' => $current_info['name'], 'value2' => $current_info['phone'] ], '/'); ?> <tr> <td><?php echo esc_html($print->id); ?></td> <td><?php echo esc_html($print->entry_id); ?></td> <td><?php echo esc_html($print->form_id); ?></td> <td><a href="<?php echo esc_url($target_url); ?>"><?php echo esc_html($print->info); ?></a></td> <td><?php echo esc_html($print->mobile); ?></td> <td><?php echo esc_html($print->course); ?></td> <td><?php echo esc_html($print->address); ?></td> <td><?php echo esc_html($print->city); ?></td> <td><?php echo esc_html($print->zip); ?></td> </tr> <?php } ?>
补充说明
- 代码里加了
esc_html和esc_url转义函数,是WordPress标准的安全输出写法,避免XSS漏洞,建议保留 - 如果你需要修改传递的参数,只需要修改
add_query_arg第一个参数里的数组键值对即可 - 循环外的
$all_info_data数组会存储所有查询结果的info相关数据,你可以在循环结束后按需使用这个数组
内容的提问来源于stack exchange,提问作者maroc boutalb
相关产品推荐
相关产品推荐

