我正在创建的新WordPress插件的一部分是,我希望可以选择下载一个txt文件,该文件包含来自基本字符串值的数据。
此特定部分的功能是:
function get_page_links()
{
$pages = get_pages( 'post_status=publish' );
foreach ( $pages as $page )
{
$pagetitle = $page->post_title;
$pagelink = get_permalink( $page->ID );
echo "{$pagetitle}";
echo "\n";
echo "{$pagelink}";
}
}
我想生成一个txt文件,并将{$ pagelink}字符串添加到txt文件中(在循环中获取字符串中的所有页面链接),然后将其下载。
我尝试将以下代码添加到该函数中,但它似乎根本没有做任何事情...
$file = 'file.txt';
$data = '{$pagelink}';
file_put_contents($file, $data);
任何帮助将不胜感激!
答案 0 :(得分:0)
file_put_contents
将创建一个文件(如果不存在),然后将内容写入其中,而不是附加内容,仅此而已。在循环中调用它会导致它不断覆盖您编写的链接,直到循环结束为止,最后您只会得到文件中的最后一个链接。
以下代码将所有链接写入文件,每行一个链接。再次调用此函数将仍然覆盖所有链接的文件,因此,如果您删除了页面或创建了新页面,它将更新。
function get_page_links()
{
$pages = get_pages( 'post_status=publish' );
// use the code below if your making a plugin
// this will be found on:
// path/to/yourplugin/links.txt
$file = plugin_dir_path(__FILE__) . 'links.txt';
// use the code below if you're making a theme
// this will be found on:
// path/to/yourtheme/links.txt
// $file = get_template_directory() . '/links.txt'
$n_handle_file = fopen($file,'w');
foreach ( $pages as $page )
{
$pagetitle = $page->post_title;
$pagelink = get_permalink( $page->ID );
echo "{$pagetitle}";
echo "\n";
echo "{$pagelink}";
fprintf($n_handle_file, "%s\n", $pagelink);
}
fclose($n_handle_file);
}
答案 1 :(得分:0)
从您的代码看来: 1)循环中的以下行未附加到$ pagelink的先前值 $ pagelink = get_permalink($ page-> ID); 它应该更改为 $ pagelink。= get_permalink($ page-> ID); 2)否则可能存在文件写入权限问题 尝试换线 $ file ='file.txt';至 $ file = plugin_dir_path(文件)。 'file.txt';
请分享完整代码