使用fwrite()和“a”进行多次追加,而不是一次

时间:2015-09-28 作者:user81086

我正在做一些测试,因为我对PHP和Wordpress还不熟悉。

刷新时,运行以下代码functions.php

<?php

$content = "some text here\\n";
$fp = fopen($_SERVER[\'DOCUMENT_ROOT\'] . "/wp-content/themes/zerif-lite-child/myText.txt","a");
fwrite($fp,$content);
fclose($fp);
?>
写入。txt文件多次!如果我使用“wb”,它将只写入文件一次,但我希望此代码附加文件,而不是每次都覆盖它。

我尝试过使用flock(),但结果相同。

为什么在我附加它时它会多次写入此文件?

1 个回复
SO网友:phatskat

您可以尝试将代码放入WordPress Action or Filter 电话:

add_action( \'init\', \'my_file_function\' );

function my_file_function() {
    $content = "some text here\\n";
    $fp = fopen($_SERVER[\'DOCUMENT_ROOT\'] . "/wp-content/themes/zerif-lite-child/myText.txt","a");
    fwrite($fp,$content);
    fclose($fp);
}
标志(“a”vs“wb”)与您的问题无关,它只是碰巧展示了它。无论出于什么原因functinos.php 似乎不止一次跑步。您可以从默认主题的新副本开始,然后再次尝试代码,但您也应该养成在动作调用中编写代码的习惯。

这有助于确保要运行的代码在适当的时间运行。它还允许您连接到WordPress中的各个位置,通常会使它的编码功能更加强大。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请