我目前正在嘗試創建一個功能,將允許某些管理用戶刪除我們的Wordpress網站上的帖子。更具體地說,直接從Wordpress媒體庫中刪除文件。我可以通過類型成功檢索這些文件並顯示它們的名稱,但每當我嘗試利用unlink()方法從使用中刪除某些文件時,它都會搜索相對於php腳本而非服務器的文件。我試過使用$ _SERVER ['DOCUMENT_ROOT']並重復添加「../」,以便返回足夠多的目錄,然後正確指定文件路徑,但這兩個選項都不起作用。我也不能在unlink()中使用$ context參數,因爲php版本不是最新的,現在更新它是不可行的。下面是我的一些代碼:WordPress的/ PHP-取消鏈接文件搜索目錄不包含文件路徑
foreach($imgs as $img){
$imgcutpath = substr($img, 0, 33);
fopen($img, "r");
$imgpath = str_replace($imgcutpath, "", $img);
echo "<a href='?delete=1'> Delete</a>";
if (isset($_GET['delete']))
{ unlink($_SERVER['DOCUMENT_ROOT'] . $imagepath); }
}
而且,這裏是我收到警告:
Warning: unlink(/path/to/file/from/server): Is a directory in
/path/to/php/file/running/this/code/from/server/phpfile.php on line 28
這是不完全的警告,我簡單地更換出於安全原因,實際的文件路徑。謝謝您的幫助!
感謝您的建議!絕對有助於使用WordPress庫。對於任何有此問題的人,我使用https://frankiejarrett.com/2013/05/get-an-attachment-id-by-url-in-wordpress/中的代碼來使用url獲取附件標識,然後簡單地使用像Jeremy建議的wp_delete_attachment()函數。 –