我想直接在瀏覽器中訪問插件文件,所以我可以運行一個cron。wordpress插件直接在瀏覽器中訪問文件
當我去正確的網址,我得到一個頁面未找到錯誤。
默認情況下,wordpress是否會阻止您直接訪問它?這可能與.htaccess有關,或者我應該能夠直接查看它?
我試圖訪問位於這樣(只是一個例子)文件:
http://mywebsite.com/wp-content/plugins/askimet/askimet.php
任何幫助將不勝感激!
我想直接在瀏覽器中訪問插件文件,所以我可以運行一個cron。wordpress插件直接在瀏覽器中訪問文件
當我去正確的網址,我得到一個頁面未找到錯誤。
默認情況下,wordpress是否會阻止您直接訪問它?這可能與.htaccess有關,或者我應該能夠直接查看它?
我試圖訪問位於這樣(只是一個例子)文件:
http://mywebsite.com/wp-content/plugins/askimet/askimet.php
任何幫助將不勝感激!
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
。你的插件應該檢查正常的頁面請求(如init
或template_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嘗試顯示默認頁面之前退出腳本。
默認情況下,WordPress中沒有這種限制。如果您願意,您可以直接在WordPress中訪問文件。
看看文件代碼中包含類似下面 -
if (! defined('ABSPATH'))
//some action if accessed directly
否則,回來檢查的網址,並確保您的路徑是正確的。
還有一件事,如果您直接訪問插件文件並且它包含任何WordPress核心函數,它會給出錯誤,因爲在這種情況下,WordPress核心不會被加載。
但是,有一些不推薦的方式來加載WordPress的核心。