3

我的网站上有一个小表单,是我使用 Jetpack 插件创建的(它具有内置的联系表单创建器)。

artist我想从我的自定义帖子类型“ ”(使用帖子的标题)中提取用于选择输入的选项。有没有办法做到这一点?

[contact-field label='Artist' type='select' required='1' options='i want my titles go here separated by commas plus "other" option'/]

该字段的代码如下所示。我相信我需要在这个页面模板中做一些 php+jquery 的东西,但我似乎无法得到它。

4

1 回答 1

3

有一些创造力,是的,这是可能的:)

我们创建另一个简码来创建“虚拟”JetPack 简码。

我使用默认的 post_type 对此进行了测试。

add_shortcode( 'my-jet-form', 'so_14003883_jet_form' );

function so_14003883_jet_form( $atts, $content ) 
{
    // Query our post type, change accordingly
    $posts = get_posts( array(
        'post_type'    => 'post',
        'numberposts'  => -1,
        'post_status'  => 'publish'
    ) );

    // Build an array of post titles
    $titles = array();
    foreach( $posts as $post )
    {
        $titles[] = $post->post_title;
    }

    // Convert array into comma sepparated string
    $posts_select = implode( ',', $titles );

    // Make JetPack shortcode
    $return = do_shortcode( '[contact-form][contact-field label="Name" type="name" required="1"/][contact-field label="Artist" type="select" options="' . $posts_select . '"/][/contact-form]' );
    return $return;
}

用法

  • 调整所需的帖子类型
  • 调整do_shortcode部分以适合您的原始简码
  • 将短代码放在[my-jet-form]您想要的任何地方
于 2012-12-22T21:38:51.533 回答