2017-06-27 16 views
0

メインコンテンツ本体の前にショートコードコンテンツを出力しようとしていますが、それを動作させることはできません。ショートコードが正しい場所にレンダリングされません

単純な文字列または数字を使用すると正しい場所に出力されますが、テーブルhtmlを出力しようとするとコンテンツの下にレンダリングされます。

編集:私はソースコードをチェックしました。コードは正しい順序でレンダリングされますが、表示方法は異なります。私は本当に混乱しています。次のように

私のコードは次のとおりです。

/* SHORTCODES */ 


     //inject code on initialization 
     add_action('init', 'ebs_register_shortcodes'); 

     //register shortcodes 
     function ebs_register_shortcodes() { 
     add_shortcode('offer_table', 'ebs_table_shortcode'); 
     } 

     function ebs_table_shortcode() { 

     $page_offers = get_post_meta(get_the_ID(), 'offers_on_page', true); 
     $rank = 1; 

     //Table Content 
     $table = '<table> 
     <thead> 
     <tr> 
     <th>Rank</th> 
     <th>Brands</th> 
     <th>User Rating</th> 
     <th>Signup Bonus</th> 
     <th>Key Features</th> 
     <th>Play Now</th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr>'; 

     foreach ($page_offers as $index => $page_id) { 

     $table .= '<td>'.$rank.'</td>'; 
     $table .= '<td>'.get_field('ebs_brand_logo', $page_id).'</td>'; 

     if (get_field('ebs_launch_date' !== '')) { 
     $table .= '<td>'.get_field('ebs_launch_date', $page_id).'</td>'; 
     } 

     $table .= '<td>'.get_field('ebs_rating', $page_id).'</td>'; 
     //echo '<td>'.get_field('ebs_review_link', $page_id).'</td>'; 
     $table .= '<td>'.get_field('ebs_signup_bonus', $page_id).'</td>'; 
     $table .= '<td>'.get_field('ebs_key_features', $page_id).'</td>'; 
     $table .= '<td>'.get_field('ebs_clean_link', $page_id).'</td>'; 
     //$table .= '<td>'.get_field('ebs_brand_name', $page_id).'</td>'; 

     $table .= '</tr>'; 
     $rank++; 

     } 

     $table .= '</tbody><br>'; 

     //return the table 
     return $table; 

     } 

ありがとう、事前に任意の助けのために!

+0

開始時にforeach内で ' 'を開始する必要があります。今度は一度だけ実行しています... – Naruto

+0

修正しました。まだ動かない。 –

答えて

0

SOLVED!

問題は欠落していました。

関連する問題