2017-05-17 55 views
0

我有一个短代码问题,它应该出现在post div中,而是显示在页面内容的末尾(在页面的底部) 。 这是代码:短代码内容显示两次或在页面底部

add_shortcode('registru', "show_registru"); 

function show_registru() 
{ 
    global $wpdb; 

    $list_inregistrari = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'wprc_ong_casa ORDER BY data_inregistrare ASC'); 
    $sold_init = $wpdb->get_var('SELECT valoare FROM ' . $wpdb->prefix . 'wprc_solduri LIMIT 1'); 

    ob_start(); 
    print_table($list_inregistrari, $sold_init); 
    return ob_get_clean(); 
} 

如果我试图在后的div和一次在页面底部用ob_get_content()的代替ob_get_clean()表将显示曾两次。

我也试着这样做(和它仍然是在页面的底部):

ob_start(); 
print_table($list_inregistrari, $sold_init); 
$return = ob_get_contents(); 
ob_clean(); 
return $return; 

*的PRINT_TABLE功能只是呼应了一些HTML代码,所以我也试图把所有的字符串将HTML代码转换为单个变量,然后将其返回,但仍然没有任何结果。

+0

欢迎您!请考虑将代码示例减少到基本上需要重现问题的项目。这将有助于在此识别问题。 –

+0

我还没有看到任何问题。你有没有尝试运行WP_DEBUG打开,看看是否有任何错误? https://codex.wordpress.org/Debugging_in_WordPress – rideron89

+0

我使用WP_DEBUG并且没有错误 –

回答

1

Got it!所以问题是您的元素print_table缺少结尾</table>标记。

尝试此你的函数(注意第2至最后一行):

 </tr> 
    <?php 

     endforeach; 

     front_table_footer($total_incasari, $total_plati, $sold_init); 

     echo '</table>'; // needs a closing tag 
} 
+0

非常感谢!这是问题:)) –

相关问题