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

String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true

Убедитесь, что вы понимаете, почему. Это потому, что сравнение == сравнивает только ссылки; equals() метод сопоставляет содержимое по символу.

Когда вы вызываете new для a и b, каждый получает новую ссылку, указывающую на "foo" в таблице строк. Ссылки разные, но контент один и тот же.

1
задан A.J. Armstrong 10 March 2019 в 00:49
поделиться

2 ответа

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);
    }
0
ответ дан Dominick Navarro 10 March 2019 в 00:49
поделиться

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

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

0
ответ дан Avinash 10 March 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: