wordpress插件在本地主机上工作,但不在远程服务器上

问题描述:

我写了一个可在本地主机上正常工作的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

谢谢你的提示,我会试试 –

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文件 –

如果您通过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(...)'没有透露任何东西 –

能否请您通过Firebug的检查,它加载的script1.js文件(不产生一个404错误),您的远程服务器上?

+0

Hello @Laurent,我检查了页面上的'Script'选项卡上的萤火虫, t显示脚本。你的意思是?请参阅页面:http://david.onenonly.info/ –

的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'));' 你知道这是为什么吗? –

你做以下几点:

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

太棒了!感谢更新 ;) –