我在这里和搜索引擎四处张望,但不幸的是我找不到适合自己的解决方案。
因此,我现在就我需要为Contact Form 7 WordPress插件自定义的功能寻求帮助。该函数来自another question。
在一个下拉菜单中(选择),我在一个选项字段中需要两个详细信息(车间名称和日期)。这两个详细信息来自自定义帖子类型的同一帖子。第一个细节是post_title,第二个细节是Meta-Box插件的自定义字段。
以下函数原则上起作用,但仅返回一个或另一个详细信息。解决方案可能在foreach构造中。但是我不知道它是如何工作的。
非常感谢您的支持!
[更新2018-08-12] 经过进一步研究,我在this post找到了解决方案,并相应地更改了功能。
解决方案应如下所示:
<select>
<option value="workshop name – date">workshop name – date</option>
...
</select>
这是功能:
add_filter( 'wpcf7_form_tag', 'dynamic_field_choose_workshop', 10, 2);
function dynamic_field_choose_workshop ( $tag, $unused ) {
if ( $tag['name'] != 'workshop' )
return $tag;
$args = array (
'post_type' => 'workshop',
'post_status' => 'publish',
'orderby' => 'name',
'order' => 'ASC',
'numberposts' => - 1,
);
$custom_posts = get_posts($args);
if ( ! $custom_posts )
return $tag;
foreach ( $custom_posts as $custom_post ) {
$ID = $custom_post->ID;
$tag['values'][] = $custom_post->post_title . ' - ' . rwmb_get_value('workshop_meta_boxes_date', '', $ID);
$tag['raw_values'][] = $custom_post->post_title . ' - ' . rwmb_get_value('workshop_meta_boxes_date', '', $ID);
$tag['labels'][] = $custom_post->post_title . ' - ' . rwmb_get_value('workshop_meta_boxes_date', '', $ID);
}
return $tag;
}
答案 0 :(得分:0)
有CF7扩展程序将为您完成此操作。检出Smart Grid-Layout for CF7,它引入了一个名为dynamic_dropdown
的新标记。这就是您要使用的。 dynamic_dropdown
创建一个选择字段,并允许您使用分类法,帖子类型的标题或过滤器填充字段选项。您想使用过滤器选项根据您的要求实际构建选项。标签弹出窗口是不言自明的,但是,如果您在下面发表评论时感到困惑,我会给您更多提示。