如何将带有php代码的表单放入变量或短代码中?

时间:2013-03-19 作者:annabwashere

我试图将我的前端表单放入一个变量或一个短代码中,这样我就可以在它周围包装另一个短代码(特别是Bainternet Post Creation Limits).

我的表单中有PHP代码,所以我不确定该怎么做。我曾尝试为每行PHP代码创建其他变量,但它并没有像我想象的那样工作。

我知道如何创建短代码;但我不知道如何将带有PHP的表单放入短代码中。我根本不知道如何将表单放入变量,也找不到如何执行此操作的信息。

以下是表格:

<form id="new_post" name="new_post" method="post" action="" class="submit-form" enctype="multipart/form-data">
    <fieldset class="tax">
        <label for="class">Class Price:</label>
            <input type="text" value="" class="class" id="class" name="class" placeholder="20" /> &euro;
        <label for="accent">Accent:</label>
            <?php wp_dropdown_categories( \'tab_index=15&taxonomy=accent&hide_empty=0&name=accent&show_option_all=Select one\' ); ?>
        <h2>Rates</h2>
        <div class="teachratebox">
        <label for="presencial">Face-to-face classes</label>
        <?php
            $clocations = get_terms(\'class-location\', \'orderby=id&hide_empty=0\');
            $counter = 0;
            foreach ($clocations as $clocation) {
                $counter++;
                $option = \'<div class="slots"><input class="checkbox" type="checkbox" name="class-location[]" id="\'.$clocation->slug.\'" value="\'.$clocation->slug.\'" onclick="enable_text(this.checked)" />\';
                $option .= \'<span class="clocation" for="clocations">\'.$clocation->name.\'</span>\';
                $option .= \'<input type="text" class="rate" value="" id="\'.$clocation->slug.\'-rate" name="\'.$clocation->slug.\'-rate" disabled="disabled" /> &euro;</div>\';
                echo $option;
            }
        ?>
        </div>

        <input type="submit" value="Add Teacher" tabindex="40" id="psubmit" name="submit" />
    </fieldset>

        <input type="hidden" name="action" value="new_post" />
        <?php wp_nonce_field( \'new-post\' ); ?>

</form>
如何将此表单放入变量或短代码中?

2 个回复
SO网友:roryok

我建议您从表单中删除php,而是在您的短代码中写出相关的HTML。

循环浏览wp\\U dropdown\\u类别并创建下拉列表

循环浏览完形填空并建立复选框集合

  • 删除wp_nonce_字段,使用隐藏字段自己编写一些简单的代码。

    本质上,代码没有太大变化,只是输出到字符串。一旦您的短代码显示出纯HTML,就可以将其包装到另一个短代码中。

  • SO网友:Horttcore

    除了您的代码可能更好之外,这里还有一个简单的解决方案。使用输出缓冲区将所有内容写入变量。

    <?php
    ob_start();
    ?>
    <form id="new_post" name="new_post" method="post" action="" class="submit-form" enctype="multipart/form-data">
    <fieldset class="tax">
        <label for="class">Class Price:</label>
            <input type="text" value="" class="class" id="class" name="class" placeholder="20" /> &euro;
        <label for="accent">Accent:</label>
            <?php wp_dropdown_categories( \'tab_index=15&taxonomy=accent&hide_empty=0&name=accent&show_option_all=Select one\' ); ?>
        <h2>Rates</h2>
        <div class="teachratebox">
        <label for="presencial">Face-to-face classes</label>
        <?php
            $clocations = get_terms(\'class-location\', \'orderby=id&hide_empty=0\');
            $counter = 0;
            foreach ($clocations as $clocation) {
                $counter++;
                $option = \'<div class="slots"><input class="checkbox" type="checkbox" name="class-location[]" id="\'.$clocation->slug.\'" value="\'.$clocation->slug.\'" onclick="enable_text(this.checked)" />\';
                $option .= \'<span class="clocation" for="clocations">\'.$clocation->name.\'</span>\';
                $option .= \'<input type="text" class="rate" value="" id="\'.$clocation->slug.\'-rate" name="\'.$clocation->slug.\'-rate" disabled="disabled" /> &euro;</div>\';
                echo $option;
            }
        ?>
        </div>
    
        <input type="submit" value="Add Teacher" tabindex="40" id="psubmit" name="submit" />
    </fieldset>
    
        <input type="hidden" name="action" value="new_post" />
        <?php wp_nonce_field( \'new-post\' ); ?>
    
    </form>
    <?php
    $output = ob_get_contents();
    ob_end_clean();
    

    结束

    相关推荐

    只向Auth.php中的作者显示信息

    我需要能够在前端查看的个人资料中仅向作者显示一些信息,对于距离,我需要在头像下添加一个只有作者(如果登录)才能看到的文本。此文本将通知他们,他们可以通过在个人资料页面中添加头像来随时更改头像。。。我还可以添加更多细节。。。有没有办法做到这一点?谢谢