Wordpress 联系方式7和自定义职位类型

Wordpress 联系方式7和自定义职位类型,wordpress,custom-post-type,contact-form-7,Wordpress,Custom Post Type,Contact Form 7,我想使用Wordpress中的联系人表单7来构建订单表单。我希望订单的内容填充来自自定义post类型展会材料的内容-post类型包含字段名称编号描述照片。我们的想法是,每件作品都可以从表格中选择。有人能提供这方面的大致方向吗?我应该完全使用另一个插件吗?也许你可以使用wpcf7\u form\u标记过滤器钩子来实现这一点 如果要使用自定义post类型作为下拉选择的选项,可以在functions.php中添加类似以下示例的内容: function dynamic_field_values ( $t

我想使用Wordpress中的联系人表单7来构建订单表单。我希望订单的内容填充来自自定义post类型展会材料的内容-post类型包含字段名称编号描述照片。我们的想法是,每件作品都可以从表格中选择。有人能提供这方面的大致方向吗?我应该完全使用另一个插件吗?

也许你可以使用wpcf7\u form\u标记过滤器钩子来实现这一点

如果要使用自定义post类型作为下拉选择的选项,可以在functions.php中添加类似以下示例的内容:

function dynamic_field_values ( $tag, $unused ) {

    if ( $tag['name'] != 'your-field-name' )
        return $tag;

    $args = array (
        'numberposts'   => -1,
        'post_type'     => 'your-custom-post-type',
        'orderby'       => 'title',
        'order'         => 'ASC',
    );

    $custom_posts = get_posts($args);

    if ( ! $custom_posts )
        return $tag;

    foreach ( $custom_posts as $custom_post ) {

        $tag['raw_values'][] = $custom_post->post_title;
        $tag['values'][] = $custom_post->post_title;
        $tag['labels'][] = $custom_post->post_title;

    }

    return $tag;

}

add_filter( 'wpcf7_form_tag', 'dynamic_field_values', 10, 2);
您可以在表单中添加以下字段:

[select* your-field-name include_blank]

在上面的示例中,post_标题用于下拉列表的选项中。您可以在此处添加自己的字段名称、编号、描述、照片。

我不认为wpcf7\u表单标签的工作方式与vicente之前在其精彩回答中所显示的方式相同。自2015年以来,情况可能发生了变化

如果您在此处阅读,它将解释如何使用wpcf7_form_标记:

考虑到这一点,以及联系表7中的其他帖子:

我用这段代码为我拥有的自定义帖子类型创建了一个自定义下拉列表

添加动作“wpcf7_init”,“自定义”添加表单“标签”自定义列表

function custom_add_form_tag_customlist() {
    wpcf7_add_form_tag( array( 'customlist', 'customlist*' ), 
'custom_customlist_form_tag_handler', true );
}

function custom_customlist_form_tag_handler( $tag ) {

    $tag = new WPCF7_FormTag( $tag );

    if ( empty( $tag->name ) ) {
        return '';
    }

    $customlist = '';

    $query = new WP_Query(array(
        'post_type' => 'CUSTOM POST TYPE HERE',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'orderby'       => 'title',
        'order'         => 'ASC',
    ));

    while ($query->have_posts()) {
        $query->the_post();
        $post_title = get_the_title();
        $customlist .= sprintf( '<option value="%1$s">%2$s</option>', 
esc_html( $post_title ), esc_html( $post_title ) );
    }

    wp_reset_query();

    $customlist = sprintf(
        '<select name="%1$s" id="%2$s">%3$s</select>', $tag->name,
    $tag->name . '-options',
        $customlist );

    return $customlist;
}
希望这能帮助其他像我一样想办法做到这一点的人

您可以对其进行修改,以从自定义帖子类型获取所需的任何信息


但是它没有任何验证。

如果您在自定义帖子类型中使用自定义字段,请使用重力表单。只需确认这仍然适用于WP 4.2+CF7。谢谢。很有效,你知道如何添加帖子缩略图吗?知道为什么raw{field_uname}信息不适用于此吗?执行是有效的,但这些变量根本没有发挥作用。我甚至添加了$pipes=newWPCF7_pipes$tag['raw_values'];$tag['pipes']=$pipes;但是没有乐趣-电子邮件只是显示电子邮件地址部分。我如何才能获得所选帖子的永久链接?这太棒了-这个解决方案对我来说就像一个魅力-复制-粘贴-包括-输入的CPT-工作!非常感谢你!
[customlist your-field-name]