我有一篇帖子,里面有一个相对较大的表,经常更新。我没有使用(较慢的)web界面每次更新帖子,而是安装了一个“run PHP”插件,并在表体中放入一小段PHP代码,在服务器上打开一个外部文件,然后将其放入帖子的表格中。通过这种方式,我可以根据需要在响应文本编辑器中本地编辑文件,并且在提供页面时立即反映更改(并且不需要对任何WordPress表进行任何更改)。
这工作得很好,我总体上对此很满意,但有一个小问题,即外部文本文件的路径是相对于服务器上的存储的(我使用媒体库管理器来存储它,因为我使用多站点功能,而PHP是服务器端的,所以路径的形式是"wp-content/blogs.dir/1/files/2011/02/foobar.txt"
). 客户端代码(如JavaScript)使用的其他文件(如图像)的路径是相对于URL的。这显然不理想,原因有几个。
所以我有两个问题:
有没有比使用PHP更好的方式在帖子中包含外部内容
(好吧,1b。)如果没有,是否有更好的ie、更一致的文件访问方式?(也就是说,一种让PHP使用URL相对路径而不是服务器相对路径的方法?)Clarification:在这篇文章中,我有这样的想法(代码是我脑子里想不到的,所以忽略任何错误):
…
<table>
<thead><th>foo</th><th>bar</th><thead>
<tbody>
<?php
$fn ="wp-content/blogs.dir/1/files/2011/02/foobar.txt";
$fh =fopen($fn, "r");
$data=fread($fh, filesize($fn)); //no clearstatcache; TXT file is not updated *that* often
print($data);
fclose($fh);
?>
<tbody>
</table>
…
其中文本文件包含如下内容:
<tr><td>Blah</td><td>123</td></tr>
<tr><td>Foobar</td><td>asd</td></tr>
<tr><td>Test</td><td>555</td></tr>
…
当提供页面时,将执行帖子中的PHP,并从外部文件中提取表行,提取我在外部对其所做的任何更改,而无需通过WordPress。
在处理根据switch语句设置一些图像的表之前还有一些JavaScript,这些图像是通过媒体库导入的,如下所示:
case \'a\': element.style.backgroundImage=\'url(/blogs/foobar/files/2011/02/A.png)\'; break;
case \'b\': element.style.backgroundImage=\'url(/blogs/foobar/files/2011/02/B.png)\'; break;
…