我正在使用Gravity表单在表单上创建几个复选框部分,每个部分都预先填充了自定义帖子类型中的特定分类术语。
我在Gravity Forms网站上找到了一个这样做的示例:https://www.gravityhelp.com/documentation/article/dynamically-populating-drop-down-fields/ 并将其修改为复选框并显示帖子缩略图,但该示例仅适用于单个复选框。
我知道如何对所有站点分类法执行此操作的唯一方法是复制/粘贴函数并进行修改。这会导致函数膨胀。php文件。我想可能有一种方法可以为每个分类术语执行“foreach”循环,但我不擅长foreach循环,也不知道如何构建它。
这是我为分类术语的每个实例复制/粘贴的代码示例:
add_filter( \'gform_pre_render_3\', \'list_diesel_heater\' );
add_filter( \'gform_pre_validation_3\', \'list_diesel_heater\' );
add_filter( \'gform_pre_submission_filter_3\', \'list_diesel_heater\' );
add_filter( \'gform_admin_pre_render_3\', \'list_diesel_heater\' );
function list_diesel_heater( $form ) {
foreach ( $form[\'fields\'] as &$field ) {
if ( $field->type != \'checkbox\' || strpos( $field->cssClass, \'diesel-heater\' ) === false ) {
continue;
}
$posts = get_posts( \'numberposts=-1&post_type=product&product_cat=diesel-heaters\' );
$choices = array();
foreach ( $posts as $post ) {
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'thumbnail\' );
$url = $thumb[\'0\'];
$choices[] = array( \'text\' => \'<img src="\' . $url . \'"><p>\'. $post->post_title .\'</p>\', \'value\' => $post->post_title );
}
$field->placeholder = \'Select a Post\';
$field->choices = $choices;
}
return $form;
}
我希望在函数中有一个foreach循环,并用分类术语替换“diesel heater”的实例。我不擅长foreach循环,希望有人能提供一些指导。