创建短代码,但却被面向对象程序设计和类捆绑在一起?

时间:2019-05-30 作者:Dan Sutherland

我尝试创建一个新类,该类包含一个创建短代码的操作,该短代码位于我的站点上,但似乎不起作用。谁能告诉我哪里出了问题?

该类是在其自己的PHP文件中编写的,该文件位于site\\URL/includes/frontend。登记表。php

Dreamweaver没有抛出任何语法错误?

    <?php



class RegistrationForm {

    function __construct (){
        $this->make_shortcode();
    }

    function make_shortcode (){
        add_shortcode (\'Show Form\', array($this, \'form_generate\'));
    }

    function form_generate () {

        ob_start(); ?>

            <form class="form-horizontal">
                <fieldset>

                <!-- Form Name -->
                <legend>Form Name</legend>

                <!-- Text input-->
                <div class="form-group">
                  <label class="col-md-4 control-label" for="textinput">Name</label>  
                  <div class="col-md-4">
                  <input id="textinput" name="textinput" type="text" placeholder="Name" class="form-control input-md" required="">

                  </div>
                </div>

                <!-- Text input-->
                <div class="form-group">
                  <label class="col-md-4 control-label" for="textinput">Email Address</label>  
                  <div class="col-md-4">
                  <input id="textinput" name="textinput" type="text" placeholder="Email" class="form-control input-md" required="">

                  </div>
                </div>

                <!-- Password input-->
                <div class="form-group">
                  <label class="col-md-4 control-label" for="passwordinput">Password</label>
                  <div class="col-md-4">
                    <input id="passwordinput" name="passwordinput" type="password" placeholder="Password" class="form-control input-md" required="">

                  </div>
                </div>

                <!-- Text input-->
                <div class="form-group">
                  <label class="col-md-4 control-label" for="textinput">Store Name</label>  
                  <div class="col-md-4">
                  <input id="textinput" name="textinput" type="text" placeholder="Store Name" class="form-control input-md" required="">

                  </div>
                </div>

                </fieldset>
            </form>

    <?php $output = ob_clean();
    return ($output);

    }

} /*END OF CLASS*/

$new_form = new RegistrationForm;
return ($new_form);

?>

1 个回复
SO网友:Jacob Peattie

我认为OOP代码没有任何问题会导致它无法工作。

我认为问题在于短代码本身。我不相信短代码可以有空格。Show Form 不是有效的短代码名称。[Show Form] 将被解析为名为Show 具有属性Form.

此短代码的常规格式为show_form.

相关推荐

Modals using loops and ACF

我试图制作一个页面,查询特定类别(“景点”)的每一篇帖子。我已经能够成功地获得帖子,我只需要让modals工作。我在我的循环中做了一个按钮,它的标题是循环所在的任何帖子。我希望这样,每当人们单击该按钮时,它就会打开一个模式,显示代码中ACF I列表中的所有字段。不过,我有一些问题。由于某种原因,我无法让javascript正常工作。现在都在页面模板文件中,但我已经尝试通过函数将脚本排队。php等。我的猜测是,我正在尝试制作文档。getElementsByClassName而不是documents。getE