Плагин WordPress - Экспорт строковых данных в загружаемый текстовый файл - PullRequest
1 голос
/ 10 марта 2019

Часть нового плагина WordPress, который я создаю, состоит в том, что я хотел бы иметь возможность загружать текстовый файл, содержащий данные из базового строкового значения.

Функция для этой конкретной части:

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 fie и строка {$ pagelink} была добавлена ​​в текстовый файл (в цикле, чтобы получить все ссылки на страницы в строке) изатем сделайте его доступным для загрузки.

Я попытался добавить следующий код в функцию, но, похоже, он вообще ничего не делает ...

    $file = 'file.txt';
    $data = '{$pagelink}';
    file_put_contents($file, $data);

Любая помощь будетс благодарностью получил!

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Это кажется из вашего кода: 1) Строка ниже в цикле не добавляется к предыдущему значению $ pagelink $ pagelink = get_permalink ($ page-> ID); Это должно быть изменено на $ pagelink. = get_permalink ($ page-> ID); 2) Или может быть проблема с правами на запись в файл Попробуйте изменить строку $ file = 'file.txt'; в $ file = plugin_dir_path ( FILE ). 'File.txt';

Пожалуйста, поделитесь полным кодом

0 голосов
/ 10 марта 2019

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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...