2014-10-10 32 views
-1

我想直接在瀏覽器中訪問插件文件,所以我可以運行一個cron。wordpress插件直接在瀏覽器中訪問文件

當我去正確的網址,我得到一個頁面未找到錯誤。

默認情況下,wordpress是否會阻止您直接訪問它?這可能與.htaccess有關,或者我應該能夠直接查看它?

我試圖訪問位於這樣(只是一個例子)文件:

http://mywebsite.com/wp-content/plugins/askimet/askimet.php 

任何幫助將不勝感激!

回答

1

WordPress不會阻止您直接訪問PHP文件。但是,PHP文件通常會自己做。這基本上確保WordPress已加載。

在你的榜樣,akismet.php具有以下

// Make sure we don't expose any info if called directly 
if (!function_exists('add_action')) { 
    echo 'Hi there! I\'m just a plugin, not much I can do when called directly.'; 
    exit; 
} 

你可能想WordPress的加載你的插件,雖然。

相反,你需要讓你的插件知道你可以檢測和攔截的URL構造。例如,假設您訪問頁面example.org/?my-plugin-action。你的插件應該檢查​​正常的頁面請求(如inittemplate_redirect),如果找到了,請調用你的PHP腳本,然後調用exit;,這樣WordPress不會嘗試加載頁面。

function my_plugin_action() { 
    if (!isset($_GET['my-plugin-action'])) return; 

    echo 'Run cron task here.'; 
    exit; 
} 
add_action('init', 'my_plugin_action'); 

回顧:不要直接調用您的插件。製作一個顯示您的內容的URL,然後在WordPress嘗試顯示默認頁面之前退出腳本。

1

默認情況下,WordPress中沒有這種限制。如果您願意,您可以直接在WordPress中訪問文件。

看看文件代碼中包含類似下面 -

if (! defined('ABSPATH')) 
//some action if accessed directly 

否則,回來檢查的網址,並確保您的路徑是正確的。

還有一件事,如果您直接訪問插件文件並且它包含任何WordPress核心函數,它會給出錯誤,因爲在這種情況下,WordPress核心不會被加載。

但是,有一些不推薦的方式來加載WordPress的核心。

相關問題