Как автоматизировать процесс загрузки последней версии программного обеспечения для создания и загрузки ссылок в WordPress?
Исходя из вашей логики.
Вы пытаетесь автоматизировать процесс загрузки своей последней версии программного обеспечения.
Вы не хотите обновлять вещи вручную, а просто хотите загрузить свою последнюю сборку в папку /download/
. ( Оставляйте только последнюю версию с помощью FTP; вот и все )
Вот как бы я это сделал:
Ссылка на эти вопросы:
Получить последнее добавление файла в каталог
Как принудительно загрузить файл с помощью PHP
Я предлагаю два решения: первые два отдельных кода, второй один встроенный код.
Только для образовательных целей
Первое решение: Быстрое и короткое использование :
(Вам может понадобиться способ или плагин для активации запуска PHP в Widget; этот плагин помогает PHP Code Widget )
<?php
$path = "download/";
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
// could do also other checks than just checking whether the entry is a file
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
echo '<a href="http://www.example.com/'. $path .$latest_filename.'">Download '. $latest_filename . '</a>';
?>
Второе решение:
(Опять же, вам может понадобиться способ или плагин для активации запуска PHP в Widget; этот плагин помогает PHP Code Widget )
A) Создание файла download.php в http://www.example.com/download.php
Добавьте следующий код:
<?php
$path = "download";
$latest_ctime = 0; //ctime stands for creation time.
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
// could do also other checks than just checking whether the entry is a file
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
// echo $latest_filename; un-comment to debug
$file_url = 'http://www.example.com/download/'.$latest_filename;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url); // do the double-download-dance (dirty but worky)
?>
B) в свой HTML-виджет WordPress добавьте следующий код
<?php
$path = "download";
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
// could do also other checks than just checking whether the entry is a file
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
echo '<a href="http://www.example.com/download.php">Download '. $latest_filename . '</a>';
?>
Дальнейшее объяснение:
A) отвечает за автоматическую загрузку последней версии программного обеспечения.
B) отвечает за отображение имени последней сборки и создание ссылки.
Теперь вам нужно загрузить только один файл в папку /download/
, которая является вашей последней сборкой (setup_1_0.zip
, setup_1_1.zip
, setup_1_2.zip
... и т. Д. Предлагаемое решение будет проверять дату создания независимо от файла имя.)
Важное примечание: Вы можете видеть, что последняя функция проверки файлов повторяется дважды; один раз в download.php
и один раз в виджете WordPress. Потому что, если мы объединим в один файл, мы получим заголовок уже отправленной ошибки.
Доза это ответить на ваш вопрос, пожалуйста? Пожалуйста, отзыв.