2016-08-22 88 views
1

我是一個帶ajax的wordpress插件。在wordpress中創建一個插件是包括空白空間

我主要的插件文件(myplugin.php)是:

function loadScreen(){ 
    wp_enqueue_style('files', plugin_dir_url(__FILE__) . 'css/style.css'); 
    wp_enqueue_script('files', plugin_dir_url(__FILE__) . 'js/ajax.js'); 
    require(dirname(__FILE__).'/html-template.php'); 
} 

add_shortcode("loadmyplugin", "loadScreen"); 

和HTML-的template.php是:

<script type='text/javascript'>  
    jQuery(document).ready(function($) { 

     var option = ''; 
     jQuery.ajax({ 
      url: URL, 
      dataType: 'json', 
      type: 'GET', 
     }).done(function(data) { 

      for(var spec in data){ 
       options += '<option value='+spec+'>'+data[spec]+'</option>'; 
      } 

      jQuery('select#option-list').append(options);    
     });   
    }); 
</script> 

<div class="et_pb_section et_section_regular"> 

    <div class="et_pb_row "> 
     <select id="option-list"></select> 
    </div>   
    ...  
</div> 

我也是用航空維修建設內容頁,我想從簡碼中使用我的插件[loadmyplugin]。

我的插件工作,唯一的問題是,我的插件是在頁面編輯模式[image1]包括一些空白空間,它的加載在頁面[image2]的開始,但我希望它加載我在哪裏我爲它創建了模塊。

我想我缺少一些關於add_filter或add_action的事情,但我不確定,有人可以幫我嗎?

此搜索: image1

圖像2: image2

回答

2

你的 「規定」,產生輸出時短代碼被調用時,它應該 「迴歸」 您的HTML代替。

簡單的解決辦法:

function loadScreen(){ 
    wp_enqueue_style('files', plugin_dir_url(__FILE__) . 'css/style.css'); 
    wp_enqueue_script('files', plugin_dir_url(__FILE__) . 'js/ajax.js'); 
    // start to capture output into buffer 
    ob_start(); 
    require(dirname(__FILE__).'/html-template.php'); 
    // return captured output and end buffering 
    return ob_get_clean(); 
} 

add_shortcode("loadmyplugin", "loadScreen"); 
+0

謝謝!它幫助了我。 – Kelyane