在wordpress中单击URL时,在内容部分显示自定义文件

时间:2015-07-17 07:25:55

标签: wordpress-plugin wordpress

我刚刚开始学习wordpress插件并制作一个简单的插件。我陷入了我现在购买按钮的过程中,我想如果我点击该按钮它将在内容区域显示我的自定义表单。我做了以下代码

 <a href="?hotel_booknow=2" class="btn btn-primary" id="create-user">Buy Now</a>

我希望它会调用包含我的自定义文件的下面的函数

    function jdbs_init(){

      if(isset($_GET['hotel_booknow']))
      {
       $content = include dirname( __FILE__ ) . '/jdbs.php';
       //require  ('jdbs.php');
          return $content;
      }
     }

   add_action('init','jdbs_init');

如果我点击该网址,则会包含jdbs.php文件,但它出现在页面顶部,标题和显示主页上方。我想在主要或内容部分显示它。  我试图在谷歌搜索但没有帮助。

jdbs.php:

<form class="form-horizontal" role="form">
    <div class="form-group">
      <label class="control-label col-sm-2" for="email">Email:</label>
      <div class="col-sm-10">
        <input type="email" class="form-control" id="email" placeholder="Enter email">
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2" for="pwd">Password:</label>
      <div class="col-sm-10">          
        <input type="password" class="form-control" id="pwd" placeholder="Enter password">
      </div>
    </div>
    <div class="form-group">        
      <div class="col-sm-offset-2 col-sm-10">
        <div class="checkbox">
          <label><input type="checkbox"> Remember me</label>
        </div>
      </div>
    </div>
    <div class="form-group">        
      <div class="col-sm-offset-2 col-sm-10">
        <button type="submit" class="btn btn-default">Submit</button>
      </div>
    </div>
  </form>

就像在joomla中一样,我们正在制作一个控制器和视图,以便在wordpress中创建如何为同一个插件制作多个页面或视图的页面?

1 个答案:

答案 0 :(得分:1)

在发送标头之前调用init挂钩,因此包含的文件位于标头之上是有意义的。 见https://codex.wordpress.org/Plugin_API/Action_Reference/init

正确的方法是告诉Wordpress使用不同的模板文件:

add_filter( 'template_include', 'my_change_template' );

function my_change_template( $original_template ) {
  if (isset($_GET['hotel_booknow'])) {
    return 'jdbs.php';
  } else {
    return $original_template;
  }
}

这样它将使用jdbs.php来呈现页面。但是你需要将页眉/页脚部分放在表单周围(例如,你可以从page.php复制/粘贴它们)。

Learn more about template files in Wordpress