2012-07-13 38 views
0

當我在functions.php執行此代碼我得到的路徑:WordPress/PHP - 如何將變量移動到非wordpress文件?

$upload_dir = wp_upload_dir(); 
echo $upload_dir['path']; 

//Returns: /some/correct/path/ 

但我想這條道路被移動到位於uploads.php在那裏我可以不執行wp_upload_dir();我的自定義腳本。我顯然不能include() functions.php要麼因爲它會執行位於那裏的一切。

是否有任何棘手的方法將$upload_dir變量傳遞給uploads.php

+0

如果我的解決方案工作,請選擇它作爲答案:) – Skatox 2012-07-16 20:42:12

回答

1

你只需要加載WP-load.php它會給您可以訪問所有的WordPress的功能,只是做這樣的事情:

<?php 
    require('../wordpress_install_root/wp-load.php'); 
    $upload_dir = wp_upload_dir(); 
    echo $upload_dir['path']; 
?> 

這是一個簡單的方法。

+0

太好了!嗯,但我怎麼知道正確的WP路徑是什麼?我正在爲更多可以有各種設置的人開發主題。像其他5個文件夾中嵌套的主題文件夾等 – Atadj 2012-07-13 14:15:16

+0

這是一個WordPress的外部問題,我建議把同一個文件放在wordpress根目錄下並使用:<?php echo $ _SERVER ['DOCUMENT_ROOT']; ?>獲取相同的路徑,如果是主題,則可以使用相對路徑:<?php echo $ _SERVER ['DOCUMENT_ROOT']。'/ ../../wp-load.php'; ?>(請檢查正確的數字../?> – Skatox 2012-07-13 14:18:56

+0

'wp-load.php'有兩個可能的位置:一個在wp目錄中,另一個在上面的目錄 – fuxia 2012-07-16 08:59:00

1

只包括您的外部PHP文件的頂部如下:

$wp_url = str_replace('wp-content/plugins/YOUR_PLUGIN_NAME/includes', "", dirname(__FILE__)); 
include_once($wp_url . 'wp-load.php'); 

顯然與插件的名稱替換YOUR_PLUGIN_NAME。我在一個由Paypal和其他支付網關調用的文件中使用它。

一些也使用以下,但我從來沒有得到它正常工作,我不確定它是否被棄用。

require_once('../../../../wp-blog-header.php'); 
+0

謝謝!我只是想知道最後一件事 - 我如何確定正確的路徑?我正在爲更多人開發主題,其中一些人可能會將該文件放入如下內容中:wp-content/plugins/YOUR_PLUGIN_NAME/CUSTOM_FOLDER/CUSTOM_FOLDER2/includes,我真的不知道他們的情況會如何。 – Atadj 2012-07-13 14:17:55

相關問題