根据选择菜单选项生成Wordpress短代码


Generate Wordpress shortcode based on select menu choice

我使用高级自定义字段重复器字段来生成一个选择菜单,其值与Wordpress短代码相对应,以在页面上显示表单。当选择不同的选项时,应该显示不同的表单。下面是我正在尝试的代码:

<select id="forms">
    <option value="">Pick a form</option>
    <?php while(the_repeater_field('the_forms')): ?><option value="<?php the_sub_field('form_shorttag'); ?>"><?php the_sub_field('form_name'); ?></option><?php endwhile; ?>
</select>
<div id="form_display"></div> 
<script>
      jQuery("#forms").on("change", function(){
        var theform = jQuery(this).val();
        jQuery("#form_display").html(<?php echo do_shortcode(+ theform); ?>);
      })
</script>

我认为这将是一个简单的任务,但我肯定错过了一些东西,因为它不工作。如有任何建议,不胜感激。

你能做的就是在JavaScript中使用所有的形式创建变量,比如:

var someform = <?php echo json_encode(do_shortcode("someform")); ?>;
json_encode将PHP输出用双引号括起来。然后在onchange事件中进行切换:
var form_content;
switch (theform) {
    case "someform" :
        form_content = someform;
        break;
    (other cases)
}
jQuery("#form_display").html(form_content);

有更好的方法,但这可能对您有用。