2012-10-02 201 views
2

我寫了一個可在本地主機上正常工作的wp插件。它創建子主題目錄並將home.php複製到那裏。但'主頁'選項卡顯示父主題中的舊內容。只有當我將home.php重命名爲index.php時纔有效。這是我home.phpwordpress插件在本地主機上工作,但不在遠程服務器上

<?php 
get_header(); ?> 

    <div id="container"> 
     <div id="content" role="main"> 

     </div><!-- #content --> 
    </div><!-- #container --> 

而且我在/ JS文件夾script1.js文件應ADDA一個文本框塊,但事實並非如此。我嵌入這樣的腳本:

define('jsdir',plugin_dir_url(__FILE__).'js'); 
wp_enqueue_script('dk_js_myplugin',jsdir.'/script1.js',array('jquery')); 

但螢火蟲不顯示在頁面上。 這兩個問題都不存在本地安裝WordPress的xampp 感謝您的時間,任何幫助,高度讚賞!

+0

檢查您的任何權限錯誤服務器錯誤日誌。 – SMacFadyen

+0

謝謝你的提示,我會試試 –

回答

1
define('jsdir', WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/js'); 

表達dirname(plugin_basename(__FILE__))返回目錄wp-content/plugins插件位置。閱讀關於plugin_basename()。常量WP_PLUGIN_URL返回插件目錄的絕對路徑。

在你的插件嘗試代碼:

<?php 

var_dump(WP_PLUGIN_URL); 
var_dump(dirname(plugin_basename(__FILE__))); 

// output should be like this: 
string(36) "http://domain.tld/wp-content/plugins" 
string(9) "my-plugin" 

初始化FUNC鍵添加腳本:

add_action('init', 'plugin_register_css_js'); 
function plugin_register_css_js() 
{ 
    global $wp; 
    $current_url = add_query_arg($wp->query_string, '', home_url($wp->request)); 

    if($current_url == 'mypage') 
    { 
     wp_enqueue_script('js', $jsdir . '/script1.js', array('jquery')); 
    } 
} 
+0

你好@doktorgradus!感謝您的迴應。這是我什麼時候得到你的建議片段[鏈接] http://david.onenonly.info/ script1.js不包括即使我把絕對路徑 –

+0

嗯。在哪個目錄下'script1.js'?在插件目錄或主題目錄?嘗試'var_dump(plugin_basename(__FILE__));',它輸出什麼? – doktorgradus

+0

script1.js是在這裏:http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js 正如你所看到的,我檢查選項的價值之前,將頁面添加到 'if(dk_options .opt){ \t \t contentID.appendChild(newForm); \t}' 和我通過 'dk_options.opt' 像這樣 'wp_localize_script腳本( 'dk_js_myplugin', 'dk_options',$選擇);'在我的PHP文件 –

0

如果您通過FTP訪問有些時候,它的權限問題(我認爲你這樣做),那麼嘗試玩弄權限。它也可能有助於打開php錯誤。

ini_set('error_reporting', E_ALL); 
ini_set('display_errors', 1); 
+0

非常感謝,我會嘗試併發布結果 –

+0

我會建議使用:error_reporting(E_ALL | E_STRICT); –

+0

不好意思寫了,但包括'error_reporting(E_ALL | E_STRICT);'和'ini_set(...)'沒有透露任何東西 –

0

能否請您通過Firebug的檢查,它加載的script1.js文件(不產生一個404錯誤),您的遠程服務器上?

+0

Hello @Laurent,我檢查了頁面上的'Script'選項卡上的螢火蟲, t顯示腳本。你的意思是?請參閱頁面:http://david.onenonly.info/ –

0

的script1.js文件不是由您的瀏覽器「稱爲」(見圖片附後)enter image description here

我會建議你重新檢查你的模塊,這樣就可以確保腳本在標籤加載。

+0

你好@Laurent腳本地址是這樣的:http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js 但即使插入絕對URL,它也不會被包含:'wp_enqueue_script('dk_js_myplugin','http://david.onenonly.info/wp-content/plugins/childtheme/js/script1.js',array( 'jquery'));' 你知道這是爲什麼嗎? –

0

你做以下幾點:

function load_dk_scripts() { 
    wp_enqueue_script(
     'dk_js_myplugin', 
     'http://david.onenonly.info/wp-content/plugi‌​ns/childtheme/js/script1.js', 
     array('jquery') 
    ); 
} 
add_action('wp_enqueue_scripts', 'load_dk_scripts'); 
+0

謝謝,問題出在'add_action'函數 –

+0

太棒了!感謝更新 ;) –

相關問題