2016-08-22 14 views
1

私はajaxでwordpressプラグインを作成しています。wordpressにプラグインを作成するには空白が含まれています

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は次のとおりです:

私の主なプラグインファイル(myplugin.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について何か不足していると思いますが、私は確信が持てません。

画像1: 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

関連する問題