插件不显示存在短​​代码的页面上的功能

时间:2015-03-17 01:29:36

标签: wordpress-plugin wordpress

这是我正在开发的插件,它的功能是显示存储在插件目录中的CSV文件,作为HTML表格;我之所以手动编写这个,而不是使用执行类似任务的众多现有插件之一,我需要能够将html输出用于稍后将执行的另一个脚本的函数,而不是仅显示此数据。

短代码正在运行,因为它在页面上不可见,但页面上没有其他内容。

据我所知,我用来测试这个插件的csv文件没有损坏,可以打开。

这是Book1.csv的内容:

test1,test2,test3
a,b,c
1,2,3
4,5,6
7,8,9
10,11,12
13,14,15

<?php

<table>
    <thead>
        <th>
            Image
        </th>
        <th>
            Name
        </th>
        <th>
            Price
        </th>
    </thead>
    <tbody>

<?php

add_shortcode( "csv", "open_csv_file");

function open_csv_file() {

$handle = fopen("Book1.csv", "r");



 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE):
 }

 ?>

 <?php

    <tr>
        <td><?= $data[1] ?></td>
        <td><?= $data[2] ?></td>
        <td>$<?= number_format($data[7], 2) ?></td>
    </tr>
 endwhile;
}
    </tbody>
</table>

?>

1 个答案:

答案 0 :(得分:1)

我在你的代码中发现了一些错误,首先你没有得到任何输出,因为

  • }功能在错误的地方关闭
  • 短标签&lt;?=如果在配置中被禁用,则可能无效。

以下内容可能有效,

<?php
add_shortcode( "csv", "open_csv_file");

function open_csv_file() {
?>
<table>
    <thead>
        <th>
            Image
        </th>
        <th>
            Name
        </th>
        <th>
            Price
        </th>
    </thead>
    <tbody>
<?php
$handle = fopen("Book1.csv", "r");



 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE):

 ?>
    <tr>
        <td><?php echo $data[1]; ?></td>
        <td><?php echo $data[2]; ?></td>
        <td>$<?php echo number_format($data[7], 2); ?></td>
    </tr>
<?php
 endwhile;

?>
    </tbody>
</table>
<?php } ?>